CurrentPrincipal.Identity.Name为空白

use*_*114 3 c# asp.net iis-6 current-principal

我试图用来System.Threading.Thread.CurrentPrincipal.Identity.Name获取谁正在使用ASP.NET应用程序的登录名。我没有任何构建错误,但是它返回一个空白值。我正在使用IIS 6,这是我的身份验证设置:

  • 匿名身份验证:已禁用
  • ASP.NET模拟:已禁用
  • 基本身份验证:已启用
  • Windows身份验证:已启用

我的Web.config文件中也没有授权设置。这是我用来尝试登录的方法:

    public void SetUser()
    {
       string login = System.Threading.Thread.CurrentPrincipal.Identity.Name;
    }
Run Code Online (Sandbox Code Playgroud)

我有一个断点检查该值,它说login = ""

如何获得登录名?

编辑

这是我的身份验证图片:在此处输入图片说明

小智 5

Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Run Code Online (Sandbox Code Playgroud)

为我工作。我遇到了同样的问题。


use*_*114 2

我能够修复它。在我的项目属性中,我使用的是 IIS Express,因此我的应用程序没有访问我的实际 IIS。我取消选中该选项,创建了一个虚拟目录并禁用了除 Windows 身份验证之外的所有身份验证,现在它可以工作了。