ASP.Net/MVC授权Vs认证

时间:2010-07-07 06:38:02

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

另外,如果你想不同地使用它,那么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()
    {
       ...
    }