【问题标题】:ASP.Net/MVC Authorize Vs AuthenticateASP.Net/MVC 授权与身份验证
【发布时间】:2011-03-12 16:04:53
【问题描述】:

所以我将它设置在我的控制器之上: [授权(角色=“管理员”)]

问题是他们是否没有登录,或者没有正确的角色,它会将他们重定向到登录页面。有没有办法让它以不同的方式处理授权和身份验证?

【问题讨论】:

    标签: authentication asp.net-mvc-2 authorization


    【解决方案1】:

    我可能不太了解你,但是身份验证和授权总是在一起的。一个说使用哪种机制来验证用户(表单、窗口等),第二个说允许哪些角色或用户查看内容。 .

    就您的网络配置中设置的身份验证方法而言,它是固定的,并且只认为您可以用来保护您的控制器方法就是放置这些属性。

    另外,如果你想以不同的方式使用它,f.e.重定向到不同的页面,您可以使用以下代码:

    public class RedirectAuthorizeAttribute : AuthorizeAttribute
    {
        public string RedirectUrl { get; set; }
    
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filterContext.Result = new RedirectResult(RedirectUrl);
        }
    }
    

    然后像这样把它放到你的控制器方法上:

        [RedirectAuthorize(Roles = "MyRole", RedirectUrl = "SomeUrl")]
        public ActionResult SomeAction()
        {
           ...
        } 
    

    【讨论】:

    • 我的意思是,如果他们没有登录,我想将他们发送到登录页面,但如果他们没有正确的角色,我想将他们发送到其他地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 2015-11-19
    • 2016-05-29
    相关资源
    最近更新 更多