C# 确定当前用户是否正在登录Active Directory(或是有效的Active Directory用户)

C# 确定当前用户是否正在登录Active Directory(或是有效的Active Directory用户),c#,active-directory,membership-provider,C#,Active Directory,Membership Provider,上下文:Excel加载项需要测试当前windows用户是否为有效的active directory用户(并基于此确定其他基于权限的逻辑) 我设置了Active Directory成员资格提供程序。对于System.Security.Principal.WindowsIdentity用户,我取出域名(用户帐户名为\),然后使用用户名在Active Directory(Membership.GetUser())中测试sAMAccountName 这是测试当前用户是否登录到active directo

上下文:Excel加载项需要测试当前windows用户是否为有效的active directory用户(并基于此确定其他基于权限的逻辑)

我设置了Active Directory成员资格提供程序。对于System.Security.Principal.WindowsIdentity用户,我取出域名(用户帐户名为\),然后使用用户名在Active Directory(Membership.GetUser())中测试sAMAccountName

这是测试当前用户是否登录到active directory的有效方法吗

我得到的印象是,我只是在测试当前用户帐户名是否存在于active directory中,而实际上并不知道当前用户是否实际登录到active directory


再说一次,我不确定“登录active directory”是什么意思。。。我对active directory很陌生

也许这会帮助您:

检索WindowsIdentity后,可以读取其用户属性以获取唯一标识用户的SecurityIdentifier(SID)

如果要确定此帐户是否存在于Active Directory存储中,可以使用SecurityIdentifier而不是用户名搜索目录。这样,您就不必担心用户名混淆


如果您想确定用户登录到哪个域;您可以读取用户的SecurityIdentifier的AccountDomainSid属性。这将为您提供唯一标识域的SecurityIdentifier。

这可能会帮助您:

检索WindowsIdentity后,可以读取其用户属性以获取唯一标识用户的SecurityIdentifier(SID)

如果要确定此帐户是否存在于Active Directory存储中,可以使用SecurityIdentifier而不是用户名搜索目录。这样,您就不必担心用户名混淆


如果您想确定用户登录到哪个域;您可以读取用户的SecurityIdentifier的AccountDomainSid属性。这将为您提供唯一标识域的SecurityIdentifier。

您是否遗漏了一些上下文?您讨论了Excel加载项,然后讨论了Active Directory成员资格提供程序。据我所知,Active Directory成员资格提供程序是针对ASP.NET的。它如何与您的Excel插件相关?我缺少上下文!抱歉,我错过了重要的一步。身份验证实际上发生在WCF服务中,excel加载项通过该服务调用AD提供程序。然而,我的测试是使用一个简单的命令行应用程序。看起来很好用!你错过了一些上下文吗?您讨论了Excel加载项,然后讨论了Active Directory成员资格提供程序。据我所知,Active Directory成员资格提供程序是针对ASP.NET的。它如何与您的Excel插件相关?我缺少上下文!抱歉,我错过了重要的一步。身份验证实际上发生在WCF服务中,excel加载项通过该服务调用AD提供程序。然而,我的测试是使用一个简单的命令行应用程序。看起来很好用!谢谢这让我更加相信我正在查看的用户凭据是正确的。谢谢!这让我更加相信我正在查看的用户凭据是正确的。