首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从服务器获取用户的SID?

问如何从服务器获取用户的SID?
EN

Stack Overflow用户
提问于 2015-08-05 17:24:57
回答 1查看 969关注 0票数 0

我有个密码:

代码语言:javascript
复制
public bool UserCheck()
    {
        using (var context = new PrincipalContext(ContextType.Domain))
        {
            try
            {
                using (var user = UserPrincipal.FindByIdentity(context, IdentityType.Sid, WindowsIdentity.GetCurrent().User.Value))
                {
                    if (user != null) return true;
                    else return false;
                }
            }
            catch (System.Runtime.InteropServices.COMException) { return false; }
        }
    }

它将检查当前用户是否存在于服务器的AD中。

这段代码在我的机器上测试时运行良好,但是当我发布它时,代码开始返回false,经过进一步的调试,我发现

代码语言:javascript
复制
WindowsIdentity.GetCurrent().User.Value

是获取服务器的SID,而不是用户的。

当代码发布时,如何获得用户的SID?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-05 18:00:46

在开发机器上运行站点时,Visual将在IIS Express中加载该站点。IIS Express正在以登录用户的身份运行。这就是为什么您在执行时看到您的用户名:

代码语言:javascript
复制
WindowsIdentity.GetCurrent().User.Value

发布web应用程序之后,您可能会在IIS下运行它。您需要配置IIS和ASP.NET以使用集成Windows身份验证(它要么使用Kerberos,要么使用NTLM)

有关更多信息,请参见此链接或ASP.NET和windows身份验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31839024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档