用ASP.NET CORE开发通常都会有这样一个需求,自己框架开发的页面,要被其他网站嵌套引用,但其他网站通过链接到自己的开发页面的时候,通常会有一个登录页面,有的时候网站无缝集成的时候,这就会要求跳过这个WTM框架的登录页面,直接使用目标页面,这就是一个问题。
经过网上的搜索,大多数说是要集成单点登录,或者继承修改Authentication类,或者修改Scheme之类的,基本上只是提到,并不具备可操作性。后来我想到,要跳过登录界面还要能保证被引用页面正常使用,只需要在Login方法里自动填入账户密码重定向到被引用界面不就行了,果然打不过就加入也是一种解决方案。我将原来登录点击按钮的代码填入Login方法,并将方法改为异步形式,如下图,然后指定重定向的URL为要引用的页面在WTM框架内的相对路径,这样当WTM框架触发登录时,自动填入账户密码,并重定向到被引用页面,实现被引用免登录效果。
当然框架也需要调整,需要去掉左侧菜单导航页面,要调整框架页面_Layout.cshtml和Layout.cshtml。_Layout.cshtml中要对LAY_app加一个class,确保初始菜单是隐藏的。
Layout.cshtml中也需要注释掉顶部和左侧菜单代码。
这样就可以实现被引用免登录效果了。