有两个域:domainA.com和domainB.com。
domainA.com中托管了一个wcf服务,该服务使用Windows身份验证来识别用户。
只要domainA中的用户只使用该服务,这样就可以正常工作。不幸的是,来自domainB的用户很快也需要使用此服务,并且从domainB帐户连接时Windows身份验证失败。
是否可以通过将其指向domainB LDAP来覆盖Windows身份验证? 如果没有关于如何在这种情况下验证domainB用户的其他解决方案?
我发现,一个灵魂将从Windows切换到UserName clientCredentialType,提示用户输入用户名和密码,然后使用自定义UserNamePasswordValidator来验证domainB LDAP。但是,如果可能,我希望避免提示用户输入密码。
你有什么建议吗?
答案 0 :(得分:0)
使用DirectoryEntry类构造函数的第一个参数是域。然后只需输入用户名和密码。如果域之间没有信任,则必须更改要为用户授权的域的域。
如果抛出异常,则用户未经过身份验证。
using (DirectoryEntry de = new DirectoryEntry(ldap://mydomain.com:389, LDAPUser, LDAPPass, authflags))
{
try
{
Object obj = de.NativeObject;
}
catch (Exception ex)
{
ErrorMsg = ex.Message;
}
}