从家庭成长的表单身份验证转向AD的策略是什么?

时间:2011-05-07 07:50:32

标签: c# authentication active-directory forms-authentication

这个问题说明了一切。我们的应用程序目前正在针对数据库验证用户。我们有内部和外部用户。对于新的内部应用程序,我们希望为内部用户迁移到AD,并且将来我们希望设置允许外部用户在站点上注册的服务,但是使用注册代码创建具有基于权限的AD用户在他们正在击中的URL上。我们的计划是[customername] .company.com。有什么建议?你有没有经历过这段经历?

编辑:这是webforms和mvc的混合。 .NET 4.0

1 个答案:

答案 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组(以及这些组中的用户成员资格)作为允许/不允许某些功能的标准。

查看有关该主题的一些博文: