在 C# 中以编程方式登录到不同的活动目录

Login to different active directories programaticly in c#

我工作的公司有两个活动目录(ad1.comad2.com),因为它有两个彼此无关的不同商店和大量用户,但现在这两个商店的经理需要一个共同的页面。 所以我需要创建一个登录名,用户可以使用他们的 Active Directory 用户名和密码访问。

在登录页面应该有一个选择活动目录的列表,然后是用户 Paul(paul@ad1。 com) 和用户 Paul(paul@ad2.com) 应该能够访问该页面。

我有一个 AD 的登录页面所需的代码并且运行良好,但我不知道是否可以使该页面可用于两个 AD。 我需要在服务器上进行一些额外的配置吗?

我google这个但是没有找到任何相关的东西。

如果您拥有一个 AD 所需的代码,则可以很好地使用稍作修改的相同代码来针对另一个 AD 进行身份验证。

根据域名,您可以识别 AD 的设置并执行身份验证。

在您使用两个 AD 的情况下,仅识别域名很重要 ad1\username 或用户名@ad1.com。如果用户不指定域名,您将无法登录。

您是否尝试过使用 LDAP Authentication 并根据下拉列表以不同方式定义它?

类似于:

string adPath = string.Empty;
string domainName = string.Empty;
switch (ddlOption.ToString()) 
    {
         case "ad1":
           adPath = "ad1Path";
           domainName = "ad1";
           break;
        case "ad2":
           adPath = "ad2Path";
           domainName = "ad2";
           break;
    }
LdapAuthentication adAuth = new LdapAuthentication(adPath);
if (adAuth.IsAuthenticated(domainName, username, password))
{
    //redirect Logic
}