这个问题说明了一切。我们的应用程序目前正在针对数据库验证用户。我们有内部和外部用户。对于新的内部应用程序,我们希望为内部用户迁移到AD,并且将来我们希望设置允许外部用户在站点上注册的服务,但是使用注册代码创建具有基于权限的AD用户在他们正在击中的URL上。我们的计划是[customername] .company.com。有什么建议?你有没有经历过这段经历?
编辑:这是webforms和mvc的混合。 .NET 4.0
答案 0 :(得分:2)
如果您使用的是.NET 3.5及更高版本,则应查看System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。在这里阅读所有相关内容:
Managing Directory Security Principals in the .NET Framework 3.5
基本上,您可以定义域上下文并轻松在AD中查找用户和/或组:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// validate username/password credentials against AD
if (ctx.ValidateCredentials(userName, password))
{
// do something
}
// getting current user and testing against group membership
GroupPrincipal group = GroupPrincipal.FindByIdentity("YourGroup");
UserPrincipal user = UserPrincipal.Current;
if (user.IsMemberOf(group))
{
// do something
}
新的S.DS.AM使得在AD中使用用户和群组变得非常容易:
如果您主要使用ASP.NET应用程序,我建议您检查具有AD接口的ASP.NET成员资格和角色提供程序,以便您可以使用AD组(以及这些组中的用户成员资格)作为允许/不允许某些功能的标准。
查看有关该主题的一些博文: