2010-07-07 204 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