【问题标题】:How to associate user account to a domain user如何将用户帐户关联到域用户
【发布时间】:2012-06-22 08:15:53
【问题描述】:

我正在开发一个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; }
}

谢谢!

【问题讨论】:

  • 你对“关联”的定义是什么?
  • “设置帐户”是什么意思?请记住,关于您的问题,我们绝对没有比您在此处告诉我们的信息更多的信息
  • 看我可以控制用户是否可以访问Action methods/Controllers。但是(也许我什么都不知道)有关用户的唯一信息是由其域名表示的。我需要显示一些额外的内容:部门、全名、与该用户相关的帖子。同样,使用同一个域帐户可能会有很多用户,所以我还需要为每个用户提供一个密码。

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


【解决方案1】:

如果您询问如何查询 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

【讨论】:

  • 是的!这就是我要的。我也很好奇,用户信息是通过这种方式收集在 Sharepoint 内部网站中的吗?
  • 我完全不知道。我一生中从未接触过,也没有打算接触过 SharePoint。
  • SharePoint 使用在幕后使用 FIM 的 User Profile Service 与 AD 进行 DirSync。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 没有。 samAccountName 值不是远程不可变的。
    • @BrianDesmond - “远程不可变”?
    • 是的 - 它可以随时更改。在许多组织中,这种价值观一直在变化——想想结婚的人。
    猜你喜欢
    • 2017-08-25
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多