这个问题说明了一切。我们的应用程序目前正在根据数据库对用户进行身份验证。我们有内部和外部用户的混合。对于新的内部应用程序,我们希望为内部用户移动到AD,将来我们希望设置一个服务,允许外部用户在站点上注册,但让注册代码创建一个AD用户,该用户基于他们正在访问的URL具有权限。我们的方案是customername.company.com。有什么建议吗?你有过这样的经历吗?
编辑:这是webforms和mvc的混合。.NET 4.0
发布于 2011-05-07 15:56:44
如果您使用的是.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应用程序,我建议您查看ASP.NET成员资格和角色提供程序,它们具有到AD的接口,以便您可以使用AD组(以及用户在这些组中的成员资格)作为允许/禁止某些功能的标准。
请看一些关于这个主题的博客文章:
https://stackoverflow.com/questions/5919795
复制相似问题