【问题标题】:Active Directory vs Local Account AuthenticationActive Directory 与本地帐户身份验证
【发布时间】:2014-04-19 00:02:08
【问题描述】:

我们在 .Net 中开发了一个应用程序。所有用户都有一个通用的登录页面。应用程序中的某些帐户设置为针对 Active Directory 进行身份验证。其他帐户使用本地帐户登录(用户名和帐户存储在应用程序的用户存储中)。当用户登录时,我们如何区分用户是使用其 AD 凭据进行身份验证还是本地帐户进行身份验证。本地帐户/用户名通常是用户的电子邮件地址。

【问题讨论】:

    标签: .net c#-4.0 active-directory


    【解决方案1】:

    最简单的解决方案是要求用户使用完整的用户名。因此,AD 用户将使用username@domain.tldDOMAIN\username,而本地帐户用户则不会。然后,您将解析用户名并根据前缀或尾随域,确定使用哪个 MembershipProvider 进行身份验证。

    【讨论】:

    • 如果AD登录名是用户的AD userprincipalname怎么办?这可能与非 AD 帐户的用户名(电子邮件字段)发生冲突。此外,具有相同 samAccountName 的用户(在不同的 AD 域等中)怎么样。您将如何处理这种冲突?
    • @user3550534 - 您找到了 一些 令牌用户输入,该令牌将 AD 用户与本地用户区分开来。这可能是商定的前缀,例如 AD 用户必须使用而本地用户不得使用的“DOMAIN\”。如果用于 AD 与非 AD 的域是 100% 互斥的,则可能是电子邮件域。
    【解决方案2】:

    您应该将一个优先于另一个,然后按该顺序检查每个用户数据库。因此,如果您优先考虑本地用户,则只需检查用户名是否是有效的本地用户,如果不是,则针对 AD 进行检查。

    【讨论】:

      猜你喜欢
      • 2015-02-20
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2014-09-25
      相关资源
      最近更新 更多