2012-09-28 31 views
1

当前用户可以是管理员,看门人,老师等。我们当前正在使用默认提供程序。ASP.NET角色的附加层

很快应该有多个俱乐部。所有俱乐部的角色都是一样的。用户可以在多个俱乐部中,并且在不同的俱乐部中有不同的角色,或者他们也可以不在。

角色和俱乐部应保存在数据库中。

有没有一种简单的方法来做到这一点。 理想情况下,我想要做这样的事情。

[Authorize Roles = RoleName.Foo + Clubname.Bar] 

回答

2

您可以使用Role Provider类来定制其行为您的会员系统,并使其实现自己的方式就像它显示在这里ASP.NET MVC - Alternative to Role Provider?

至少让你开始,并有一些新鲜的想法。

希望这会有所帮助。

+0

+1:在我看来,这似乎是不会使系统复杂化的最可扩展的方法。 –

+0

但他没有在链接的例子中使用角色提供者。我错了吗? – Philippe

+0

感谢您的正确答案。我的意思是(重读答案)是你*使用'角色提供者'或其替代品。 Joel提到的是他的评论 - 最具扩展性(意思是简单,简单,易读,可靠)的解决方案。再次感谢。 –

0

您可以创建角色名称,例如“Administrator.Club1”和“Janitor.Club2”。

这个假设的俱乐部数量相对较少。

+0

这是否也意味着我必须将所有这些保存在同一个表中?我宁愿不这样做。 – Philippe

1

使用默认的授权属性角色只是字符串名称。有些人已将其分类到accept enum Roles

也许您可以创建所有俱乐部作为角色,并将所有角色创建为角色,并要求您拥有俱乐部名称角色和适当的角色级别。但是,这似乎是对角色意义的腐蚀。我怀疑你没有自定义授权过程就可以做到这一点。

我会看看创建一个custom authorize attributeAuthorize attribute继承,您可以扩展它以获取更多信息。你可以看一下扩展/定制使用Simple Membership provider