如何显示与域名分开的用户名,如 domain\username: 在 ASP.net 中,以便它可以用作值

How to show a username seperated from domain name like domain\username: in ASP.net so it can be used as a value

我正在设置一个应用程序,在页脚中,一个 Site.Master 文件包含一个文本标签以显示 "Welcome, username"。尽管我应用了正确的代码,但我似乎无法获取用户名的文本。

我对此很陌生,所以看不到我在做什么了。非常感谢您。

在 Site.Master 文件中:

<asp:Label ID="Label1" runat="server" ></asp:Label>

在 Site.Master.cs 文件中:

WindowsIdentity windowsIdentity = WindowsIdentity.GetCurrent();
if (windowsIdentity == null)
throw new InvalidOperationException("WindowsIdentity is null");
string nameWithoutDomain = windowsIdentity.Name.Split('\').Last();

Label1.Text = String.Format("Welcome,{0}", nameWithoutDomain);


[解决方案]

 var windowsIdentity = HttpContext.Current.User.Identity;

            if (windowsIdentity == null)
                throw new InvalidOperationException("WindowsIdentity is null");
            string nameWithoutDomain = HttpContext.Current.User.Identity.Name.Split('\').Last();

            Label1.Text = String.Format("Welcome,{0}", nameWithoutDomain);    

WindowsIdentity.GetCurrent() 获取网站为 运行 的标识,这通常是应用程序池标识。这不是登录您网站的当前用户(除非您使用模拟)。

请改用 HttpContext.Current.User.Identity,这将为您提供用于验证当前 HTTP 请求的身份。

这假定您的 Windows 身份验证工作正常。