2012-01-26 114 views
2

我需要一些关于ASP.NET成员资格的说明;请帮助我。 我正在使用ASP.NET MCV 3框架并打算为用户使用ASP.NET成员身份&使用LDAP或SQL进行身份验证管理。ASP.NET MVC成员角色

至于我了解到现在; ASP.NET成员是:

[用户]有[作用]或[作用]有[用户]

但在我的项目,我有一个更复杂的业务逻辑;我要在这个层次结构下一层像

[用户]有[作用] - >有[任务]

这样我就可以动态分配/取消任务/权限到我的MVC控制器或动作;

我计划开始使用SQL提供程序的成员身份,并且可能会稍后转为使用LDAP/AD。

我也探讨过AzMan和NetSqlAzMan;他们看起来可以解决这个错误,但他们的使用似乎很奇怪; (并不像ASP.NET成员那样简洁;我们可以简单地使用注释来将角色/任务分配给控制器或其动作。是有任何解决办法

我可以享受ASP.NET成员的使用的简单性和同一条路上,有一个角色下一级层次 - >任务 - >操作

任何帮助将是非常感谢。

谢谢!

回答

2

ASP.NET的成员资格提供者仅支持开箱即用的角色。它不支持任务或操作。但是,创建一个自定义角色提供程序来满足任何需求相对比较容易。

首先查看“实施角色提供者”http://msdn.microsoft.com/en-us/library/ie/8fw7xh74.aspx。您还可以在http://msdn.microsoft.com/en-us/library/ie/tksy7hd7.aspx找到示例角色提供程序。

+0

谢谢;似乎很有用。我现在是否可以将此自定义角色提供者升级到下一级别并添加表/方法以满足任务/操作?这听起来正确吗? –

+0

是的。这是正确的。你可以添加任何你需要的东西。 – Mark

2

ASP.NET成员资格只支持角色,没有任务或操作。

您可以使用属性来表示,其操作允许哪些角色,就像这样:

[Authorize(Roles="Administrator")] 
public ViewResult Edit(int id) 
{ 
    return View("Edit"); 
} 

或者你的代码可以用做IsInRole方法检查:

if (User.IsInRole("Administrator")) 
{ 
    ... 
} 

祝你好运!