如何实现基于信誉的用户权限,如SO?

Ken*_*n D 5 asp.net-mvc user-permissions asp.net-mvc-3

您可能认为这个问题应该在Meta SO上,但它不应该,因为它基本上是关于ASP.Net MVC,但我想要实现的技术已经在SO中实现.

我希望用户获得更多声誉,就像我们在StackOverflow中所做的那样,我的问题是如何设计用户身份验证系统?我们可以依赖内置的Forms身份验证吗?以及如何管理为用户显示的链接(取决于信誉)和不显示的内容?

我想我们不能在这里使用Roles,所以我们最终不会有1000个角色,对吧?但我们可能只使用2个角色(管理员,用户).

[编辑]:
我认为最好创建自己的Users表而不是依赖于Forms身份验证,因此我可以将声誉字段(和其他字段)添加到users表中并像你说的那样跟踪它.BTW @MartinHN,我知道if你谈过的,但我的问题是有更聪明的方法来处理这些问题吗?

Dan*_*röm 5

您可以创建一个简单的规则系统.每个用户都有与之关联的信誉评分.然后,使用操作过滤器可以控制对系统中功能的访问:

public class SomeController : IController
{
    ...
    [ReputationNeeded(Reputations.CanVoteDown)] // your custom action filter
    [HttpPost]
    public ActionResult VoteDown(...)
    { /* */ }
}
Run Code Online (Sandbox Code Playgroud)

祝好运!