2011-06-13 94 views
5

我已經創建了一個自定義的AuthorizationAttribute,並將其放置在我的控制器上。我跟着this article。我已經在OnAuthorization方法中實現了自定義授權邏輯,並且工作正常。當用戶授權失敗時,我正在執行以下操作:當用戶未被授權時重定向到AccessDenied頁面

// if authorization check fails... 
filterContext.Result = new HttpUnauthorizedResult(); 

這會顯示用戶名/密碼提示。

我的問題是,當用戶授權失敗時,推薦將用戶發送到「訪問被拒絕」類型頁面的方式是什麼?

我正在使用MVC3。

回答

2

在我去直重定向結束:

public override void OnAuthorization(AuthorizationContext filterContext) 
... 
// if authorization check fails... 
filterContext.Result = new RedirectResult(AccessDeniedPage); 

編輯:羅布科納有一個非常好的文章與ASP.NET MVC: Securing Your Controller Actions

+3

鏈接被中斷:-( – JenonD 2013-12-05 23:47:03

5

在登錄頁面,你可以檢查用戶是否已經登錄並顯示訪問被拒絕的消息,而不是登錄提示。

+0

說明對此進行了詳細雖然這可能在一個網站工作,此解決方案根本無法用於單一登錄系統,除非您希望安全令牌服務隱式理解您的依賴方站點的所有角色/用戶訪問權限,這將是非常不正確的IMO。 – 2011-08-17 12:37:31

+0

迄今爲止這麼好+1 – Har 2012-04-03 18:38:21

相關問題