获取webform的用户名

时间:2017-12-01 23:07:03

标签: c# iis

我有一个网络表单,我正在尝试记录谁正在使用它。我所做的所有研究都是关于在本地盒子上使用,而不是通过IIS。

using System.Security.Principal;

private void Form1_Load(object sender, EventArgs e)
        {
            string curuser = WindowsIdentity.GetCurrent().Name;

        }

我在哪里获得输出:

tw.WriteLine(DateTime.Now + ": " + CurUser);

显示输出:

  

12/1/2017 4:13:18 PM:System.Web.UI.WebControls.Label

我认为这是愚蠢和愚蠢的事情。谢谢你们

注意:我在IIS中为此站点启用了“Windows身份验证”。

1 个答案:

答案 0 :(得分:0)

无论CurUser是什么或哪里,它都是Label的实例。它是您在curuser中声明的Page_Load变量,然后从未使用过。

当您尝试将对象输出为字符串时,系统会在内部调用该对象上的.ToString()实现。除非被覆盖(并且Label不覆盖它),.ToString()(继承自System.Object)的默认实现是输出类型的名称。在这种情况下"System.Web.UI.WebControls.Label"

(有道理。毕竟,系统如何固有地知道复杂对象,特别是你可以编写的任何自定义对象,应该表示为字符串?)

不输出不相关的对象,输出值:

string curuser = WindowsIdentity.GetCurrent().Name;
tw.WriteLine(DateTime.Now + ": " + curuser);
相关问题