5

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

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

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

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

4

2 回答 2

5

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

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

祝你好运!

于 2011-06-28T09:06:33.693 回答
3

用户声誉的管理,以及他/她可以访问的内容(由声誉衡量)不应该是身份验证机制本身的一部分,恕我直言。

在 Web 上,您主要使用表单身份验证,一旦通过身份验证,您就可以将声誉应用于用户并在用户没有足够声誉的情况下关闭区域。

我不会将此功能作为身份验证系统的一部分。我只是让用户进行身份验证,然后为任何给定用户呈现适当的视图。

假设您的主要导航会根据声誉发生变化。您包装需要超过 1000 次代表的导航栏项目。带有if声明,如果用户少于 1000,则不显示。

于 2011-06-28T09:04:29.580 回答