2010-10-14 72 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