如何将用户帐户与域用户关联

时间:2012-06-22 08:15:53

标签: c# asp.net-mvc active-directory

我正在开发一个 Intranet站点项目(ASP.NET MVC项目)。 如何将域中的用户与其帐户(UserAccount实体)关联:

public class UserAccount {
    // normally inherited from an abstract entity
    public Guid Id { get; set; }
    public String FullName { get; set; }
    public String Password { get; set; }
    public Guid EmployeeId { get; set; }
}

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您询问如何查询Active Directory以获取域用户详细信息并填充UserAccount类,则可以使用以下命令:

public UserAccount GetUserAccount(string username)
{
    using (var context = new PrincipalContext(ContextType.Domain))
    using (var user = UserPrincipal.FindByIdentity(context, username))
    {
        return new UserAccount
        {
            Id = user.Guid,
            FullName = user.Name,
            Password = "FORGET ABOUT IT, YOU CAN'T RETRIEVE THE PASSWORD",
            EmployeeId = user.EmployeeId
        };
    }
}

但当然,如果您使用Windows身份验证,则可以使用ActiveDirectoryMembershipProvider

答案 1 :(得分:1)

Guid属性映射到AD中的objectGuid,它不会在林边界内的用户生命周期内发生变化。

答案 2 :(得分:0)

我相信您应该使用SAM-Account-Name来引用AD中的用户对象。