asp.net-mvc - 如何实现像 SO 这样的基于声誉的用户权限?

标签 asp.net-mvc asp.net-mvc-3 user-permissions

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

我希望用户在获得更多声誉的同时拥有权力,就像我们在 StackOverflow 中所做的那样,我的问题是如何设计用户身份验证系统?我们可以依赖内置的表单例份验证吗?以及如何管理要向用户显示哪些链接(取决于声誉),哪些不显示?

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

[编辑]:
我认为最好创建我自己的用户表而不是依赖于表单例份验证,因此我可以将信誉字段(和其他字段)添加到用户表中并像您说的那样跟踪它。顺便说一句@MartinHN,我知道 if你谈到了,但我的问题是有没有更聪明的方法来处理这些事情?

最佳答案

您可以创建一个简单的规则系统。每个用户都有一个与其相关联的声誉分数。然后,使用 action filter您可以控制对系统中功能的访问:

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

祝你好运!

关于asp.net-mvc - 如何实现像 SO 这样的基于声誉的用户权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6503998/

相关文章:

asp.net-mvc - IIS 6.0 突然显示目录列表而不是 MVC 3 应用程序

包含多种类型的类型列表的 c# MVC Entity Framework 模型属性

asp.net-mvc - 需要接触数据库的模型验证的推荐方法

html - 为特定浏览器创建布局

ruby-on-rails - Rails 3 公司帐户有很多用户,限制对数据的访问

c# - 网格中的剑道日历

asp.net - Razor - 如何在 div 标签中显示 html 内容?

.net - 预选多选列表框中的项目 (MVC3 Razor)

尝试在 Android Marshmallow (Android M) 中读取联系人时,Android 应用程序崩溃

django - 用于服务媒体的用户权限 Django