3

我正在尝试使用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;
    }

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

我怎样才能获得登录信息?

编辑

这是我的认证图片:在此处输入图像描述

4

2 回答 2

7
Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());

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

于 2017-03-02T16:15:26.757 回答
2

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

于 2014-06-19T16:41:56.920 回答