我在'Alpha'域上部署了MVC 4 Web应用程序,Web应用程序正在使用以下代码获取Windows用户详细信息。我们在3个不同的域(Alpha,Beta和Gamma)之间建立了信任关系。当名为Beta\bloggs
登录的用户打开后面的代码返回Web应用程序时,会返回alpha\bloggs
的详细信息。有没有办法从活动目录中获取正确的用户。
提前致谢。
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
using (UserPrincipal user = UserPrincipal.FindByIdentity(context, username))
{
if (user != null)
{
HttpContext.Current.Session["FullUserName"] = fullName;
HttpContext.Current.Session["EmailAddress"] = user.EmailAddress;
}
}
}
答案 0 :(得分:1)
据我了解,您应该针对全局目录进行测试。
你能尝试改变你的上下文:
PrincipalContext context = new PrincipalContext(ContextType.Domain, "DNSName.Of.GlobalCatalog.com:3268", "DC=yourcompany,DC=com");
答案 1 :(得分:0)
Context.domain标识要使用的凭据存储。仍需要连接到正确的域来查找另一个域中的信息。域信任只是指定凭据映射,域x中的谁映射到域z中的凭证y。
我不认为FindByIdentity可以处理隐式域信任查找。