从自行开发的表单身份验证迁移到 AD 的策略是什么?



这个问题说明了一切。我们的应用程序当前正在根据数据库对用户进行身份验证。我们有内部和外部用户的混合。对于新的内部应用程序,我们希望为内部用户迁移到 AD,将来我们希望设置一项服务,允许外部用户在网站上注册,但让注册码创建一个 AD 用户,该用户根据他们点击的 URL 具有权限。我们的方案是[客户名称].公司.com。有哪些建议?你有过这样的经历吗?

编辑:这是网络表单和mvc的混合。 .NET 4.0

如果你使用的是 .NET 3.5 及更高版本,则应查看 System.DirectoryServices.AccountManagement (S.DS.AM) 命名空间。在这里阅读所有关于它的信息:

在 .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 组(以及这些组中的用户成员身份)作为允许/禁止某些功能的条件。

请参阅有关该主题的一些博客文章:

  • Active Directory 和 ASP.NET 2.0 成员资格提供程序
  • ASP.NET 2.0 成员资格、角色、表单身份验证和安全资源
  • ASP.NET 2.0 第 I 部分中的成员资格和角色提供程序

最新更新