2010-07-07 162 views
1

所以我设置此我上面的控制器: [授权(角色=“管理员”)ASP.Net/MVC授权Vs的身份验证

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

回答

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() 
    { 
     ... 
    } 
+0

我的意思是,如果他们没有登录我想给他们到登录页面,但如果他们没有正确的角色,我想把它们发送到别的地方。 – Jhorra 2010-07-07 07:19:59

+0

所以我写的代码应该很好.. – 2010-07-07 07:59:09

+0

感谢您的协助。 – Jhorra 2010-07-07 16:11:29