确定当前用户是不是正在登录 Active Directory(或者是有效的 Active Directory 用户)
Posted
技术标签:
【中文标题】确定当前用户是不是正在登录 Active Directory(或者是有效的 Active Directory 用户)【英文标题】:Determining whether the current user is logging into Active Directory (or is a valid active directory user)确定当前用户是否正在登录 Active Directory(或者是有效的 Active Directory 用户) 【发布时间】:2011-04-02 10:25:58 【问题描述】:上下文:Excel插件需要测试当前windows用户是否是有效的活动目录用户(并据此判断其他基于权限的逻辑)
我设置了 Active Directory 成员资格提供程序。使用 System.Security.Principal.WindowsIdentity 用户,我取出域名(用户帐户名称为 \),然后使用该用户名针对 Active Directory 中的 sAMAccountName 进行测试(Membership.GetUser())。
这是测试当前用户是否登录到活动目录的有效方法吗?
我觉得我只是在测试当前用户帐户名是否存在于 Active Directory 中,而实际上并不知道当前用户是否实际登录到 Active Directory。
再说一次,我不确定“登录到活动目录”是什么意思......我对活动目录很陌生!
【问题讨论】:
你错过了这里的一些上下文吗?您谈到了 Excel 插件,然后谈到了 Active Directory 成员资格提供程序。据我所知,Active Directory Membership Provider 用于 ASP.NET。它与您的 Excel 插件有什么关系? 我缺少上下文!抱歉,我错过了其中的重要一步。身份验证实际上发生在 WCF 服务中,excel 插件通过该服务向 AD 提供程序进行调用。但是,我的测试是使用一个简单的命令行应用程序进行的。似乎工作正常! 【参考方案1】:也许这会对你有所帮助:
检索到 WindowsIdentity 后,您可以读取其 User 属性以获取唯一标识用户的 SecurityIdentifier (SID)。
如果您想确定此帐户是否存在于 Active Directory 存储中,您可以不按用户名搜索目录,而是使用 SecurityIdentifier。这样就不用担心用户名混淆了。
如果您想确定用户登录的是哪个域;您可以读取用户 SecurityIdentifier 的 AccountDomainSid 属性。这将为您提供唯一标识域的 SecurityIdentifier。
【讨论】:
谢谢!这让我更加确信我正在查看的用户凭据是正确的。以上是关于确定当前用户是不是正在登录 Active Directory(或者是有效的 Active Directory 用户)的主要内容,如果未能解决你的问题,请参考以下文章
Macos:使用objective-c确定用户帐户是不是是Active Directory用户与本地用户
Embedded JS Partials - 确定用户是不是登录
如何确定用户是不是关闭了 google auth2.signIn() 窗口?