2010-10-14 58 views
0

我目前工作的一個ASP.NET MVC2應用程序,只是想知道達到以下的最佳途徑:其持續的X量重定向過期用戶

是登錄到該網站每個用戶所會員費天。我在數據庫中記錄了會員付款和到期日期。

我希望所有用戶都能夠登錄,即使他們的會員資格已過期。但是,某些控制器/操作將超出成員已過期的成員。

所以我的問題是什麼是最好的方式來重定向用戶誰試圖訪問這些網頁時,他們的會員資格已過期?

我真的不想調用一個方法來檢查每個操作的成員狀態,我不希望過期的成員有權訪問(儘管如果這是我必須的唯一方法)。

我想過一個繼承自System.Web.Mvc.ViewPage的自定義ViewPage,我將覆蓋OnInit函數並檢查成員身份並在必要時重定向。

任何人都可以給我他們對上述想法或讓我知道是否有更好的和更易維護的解決方案?

回答

2

安全控制器或需要與[授權]屬性和一個自定義角色成員的操作方法:

[Authorize(Roles="ActiveMembership")] 
public ActionResult SomeMembershipContent() 
{ 
} 

安全控制器或動作方法,僅僅需要與[授權]屬性,沒有一個角色:

[Authorize()] 
public ActionResult SomeSimpleContent() 
{ 
} 

然後,無論您使用哪種會員提供商或自定義登錄解決方案,如果用戶是付費會員,都可以爲用戶提供額外的角色。

+0

顯然應該在我猜測的Roles()屬性上有一個右括號。另外,不應該第二個例子簡單地是[授權] public ActionResult SomeSimpleContent() { } – 2010-10-14 14:26:38

+0

@jim,謝謝,今天困了。 – jfar 2010-10-14 17:07:16

+0

jfar,同上:),再次抓住你 – 2010-10-14 18:26:40