【问题标题】:WCF - override Windows AuthenticationWCF - 覆盖 Windows 身份验证
【发布时间】:2015-06-05 12:59:55
【问题描述】:

有两个域:domainA.com 和 domainB.com。

在 domainA.com 中托管了一个 wcf 服务,它使用 Windows 身份验证来识别用户。

只要只有 domainA 中的用户使用该服务,它就可以正常工作。不幸的是,来自 domainB 的用户很快也需要使用此服务,并且从 domainB 帐户连接时 Windows 身份验证失败。

是否可以通过将 Windows 身份验证指向 domainB LDAP 来覆盖它? 如果没有,在这种情况下您是否有其他解决方案来验证 domainB 用户的身份?

我发现的一个方法是从 Windows 切换到 UserName clientCredentialType,提示用户输入用户名和密码,然后使用自定义 UserNamePasswordValidator 来验证 domainB LDAP。但是,如果可能的话,我想避免提示用户输入密码。

你有什么建议吗?

【问题讨论】:

    标签: c# wcf authentication ldap


    【解决方案1】:

    使用 DirectoryEntry 类 构造函数的第一个参数用于域。然后只需输入用户名和密码。如果域之间没有信任,您将不得不更改您想要对用户进行身份验证的域的域。

    如果抛出异常,则用户未通过身份验证。

    using (DirectoryEntry de = new DirectoryEntry(ldap://mydomain.com:389, LDAPUser, LDAPPass, authflags))
    {
        try
        {
            Object obj = de.NativeObject;
        }
        catch (Exception ex)
        {
            ErrorMsg = ex.Message;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2015-12-18
      • 2021-09-08
      • 2019-01-28
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多