在Web应用程序中读取Win7当前记录的用户名

时间:2013-11-28 01:49:56

标签: c# windows iis-7

我一直坚持这个问题,并为它研究了几天但无济于事。

我正在开发一个c#项目,只要用户尝试通过互联网访问网络应用程序,我的程序就会自动从用户的窗口读取用户名。

我尝试使用下面的命令,当我调试程序/从服务器中的localhost运行时,它可以正常工作。它设法从Windows获取我的用户名并显示在应用程序上。

  1. (HttpContext.Current.User.Identity.Name);
  2. (System.Environment.UserName);
  3. (WindowsIdentity.GetCurrent()的名称。);
  4. (Page.User.Identity.Name);
  5. (System.Security.Principal.WindowsIdentity.GetCurrent()的名称。);
  6. 但是,当我发布它并尝试从网络访问它们时,它们不起作用。

    相反,它给了我以下ID,我怀疑是来自我托管我的网站的IIS7 / Windows服务器2008。而不是从用户的控制台给我用户名。

    1. - 没有价值 -
    2. -it给我服务器名称
    3. NTAUTHORITY \ NETWORKSERVICE
    4. - 没有价值 -
    5. NTAUTHORITY \ NETWORKSERVICE
    6. 我知道在这种情况下出了什么问题吗?

      另一件事,通过我的研究,我学会了如何使用以下命令通过cmd.exe获取用户名/ userdomain。

      1. echo%username%
      2. 设置用户名
      3. wmic useraccount其中name =%username%get name
      4. wmic useraccount其中name =%username%get sid
      5. WHOAMI
      6. WHOAMI /用户
      7. 我是否知道是否可以在windows visual studio中应用这些命令,以便在用户访问我的网页时从用户窗口读取用户名?

        所以,我希望我能从这个社区的用户那里得到一些建议。谢谢!

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

问题在于IIS。我检查了身份验证方法并关闭了除windows之外的所有内容。从那里,我检查了web.config并确保将其变为“false”。

我还使用HttpContext.Current.User.Identity.Name从用户控制台获取用户名。