我正在开发一个MVC5 Web应用程序.该应用程序有2个区域,'SU'和''App'.每个区域都应独立进行身份验证.每个区域也有自己的登录页面.
我正在使用OWIN来验证用户身份.
现在的问题是,我无法CookieAuthenticationOptions
LoginPath
根据用户请求的区域设置owin .
例如,如果用户请求http://example.com/su/reports/dashboard
,我应该能够将它们重定向到http://example.com/su/auth/login
同样的,对于'App'区域,如果用户请求http://example.com/app/history/dashboard
,我应该能够将它们重定向到http://example.com/app/auth/login
我想避免自定义属性,因此尝试下面的代码,但它总是重定向到root登录路径,即, http://example.com/auth/login
public partial class Startup { public void Configuration(IAppBuilder app) { var url = HttpContext.Current.Request.Url.AbsoluteUri; string loginPath = "/auth/login"; string areaName = string.Empty; if (url.ToLower().Contains("/su/")) { areaName = "SU"; loginPath = "/su/auth/login"; } if (url.ToLower().Contains("/app/")) { areaName = "APP"; loginPath = "/app/auth/login"; } app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = "ApplicationCookie" + areaName, LoginPath = new PathString(loginPath) }); } }
我是否遵循正确的方法或是否有其他方法来实现相同的目标?谢谢!