当前位置:  开发笔记 > 后端 > 正文

使用OWIN进行基于区域的认证

如何解决《使用OWIN进行基于区域的认证》经验,为你挑选了0个好方法。

我正在开发一个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)
            });
        }
}  

我是否遵循正确的方法或是否有其他方法来实现相同的目标?谢谢!

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有