MVC4 web从错误的Active目录中获取用户详细信息。

时间:2014-03-03 10:07:15

标签: c# asp.net-mvc-4 active-directory windows-authentication active-directory-group

我在'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;
        }
    }
}

2 个答案:

答案 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可以处理隐式域信任查找。