Asp.net 如何为用户分配与Active Directory关联的安全角色

Asp.net 如何为用户分配与Active Directory关联的安全角色,asp.net,active-directory,roles,asp.net-roles,sqlroleprovider,Asp.net,Active Directory,Roles,Asp.net Roles,Sqlroleprovider,我的应用程序中的每个页面都有不同的访问角色,使用Windows身份验证来限制用户访问,使用SqlRoleProvider。所以要将用户添加到角色中,我会 Roles.AddUserToRole(userName, roleName); 现在,我需要将公司的广告组集成到我的应用程序中,这样每个广告组也将被分配这些访问角色,并且某个广告组的用户将自动继承这些角色 我的问题是: 我是否可以继续使用我的SQL表,如aspnet\u用户、aspnet\u角色等 如何整合广告群?我如何为广告组分配角色?到

我的应用程序中的每个页面都有不同的访问角色,使用Windows身份验证来限制用户访问,使用SqlRoleProvider。所以要将用户添加到角色中,我会

Roles.AddUserToRole(userName, roleName);
现在,我需要将公司的广告组集成到我的应用程序中,这样每个广告组也将被分配这些访问角色,并且某个广告组的用户将自动继承这些角色

我的问题是:

我是否可以继续使用我的SQL表,如aspnet\u用户、aspnet\u角色等

如何整合广告群?我如何为广告组分配角色?到目前为止,我可以检查所有的广告组,一个用户是使用目录条目的一部分

当用户使用Windows身份验证登录到应用程序时,在我检查他们是否属于特定广告组后,如何根据广告组为他们分配角色


非常感谢您对这些问题的帮助。

AD ASP.NET成员资格和角色系统直接与AD关联,您的数据库表将被忽略。广告组成为ASP.NET成员角色

我文章的其余部分与直接修改广告组的应用程序有关:

你可以这样做,难度很大,但在这种情况下,不建议这样做

Active Directory组成员身份由作为域管理员组成员的另一个用户分配,或被授予将用户分配到其他组的权限

为了从使用ADSI的代码中执行此操作,您的程序需要在作为域管理员组成员或被授予该用户权限的用户身份的模拟令牌下运行或使用该用户身份的模拟令牌

…这意味着您的程序突然被信任,如果被黑客攻击或滥用,可能会破坏您安全域中的havok。我不建议这样做


MSDN上提供了文档:

我怀疑在这种情况下我需要实现自己的角色提供程序?!请告知!非常感谢您的回复-我不太确定您回复的第二部分。我真的不需要修改广告组。我只需要允许属于某些广告组的用户拥有我创建的特定角色。这些角色决定他们是否有权访问应用程序中的页面。你能告诉我你将如何实现这一目标吗只需检查.IsInRole方法。请看这里:嗯,也许我没有得到什么?当我使用SqlRoleProvider时,我使用.IsInRole来检查用户是否是我创建的角色的一部分。但是,当我切换到使用广告组WindowsTokenRoleProvider时,它会忽略我创建的角色,现在当我使用.IsInRole时,它只检查广告组。我想我要做的是以某种方式将广告组链接到SQL角色?所以广告组中的用户可以被分配到这些SQL角色?恐怕默认情况下你不能这样做。您必须实现自己的RoleProvider,其中包括该功能。