asp.net Web 应用程序返回 IIS 信息而不是当前用户凭据
Posted
技术标签:
【中文标题】asp.net Web 应用程序返回 IIS 信息而不是当前用户凭据【英文标题】:asp.net web app returning IIS info instead of current user credentials 【发布时间】:2013-02-13 16:33:49 【问题描述】:我正在使用自定义身份验证的 asp.net Web 应用程序。我编写了一个快速测试应用程序来发布在我们的网络服务器上,以确保我可以从用户那里获取必要的凭据。我正在尝试使用以下代码行获取当前登录的用户(我以前做过):
string username=System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
这通常返回格式为“域\用户”的字符串。我得到的是这样的:IIS APPPOOL\ASP.NET v4.0
我确定我遗漏了一些简单的东西,IIS 中是否有需要更改的设置?还是有其他方法来获取用户名?
【问题讨论】:
您的 web.config 中有模拟设置吗? @Dillie-O 我目前没有设置模拟。我认为应该禁用它,因为 asp 应用程序将处理身份验证。我确实尝试启用它,并且 NT AUTHORITY\IUSR 已返回给我。 由于您使用的是自定义身份验证,您是否有适当的代码来设置 IPrincipal 详细信息?没有它,我相信 Security.Principal 类默认为你所拥有的 @Dillie-O 看来这就是我的问题所在!我忘记了在我的测试中为此编码。谢谢! 不是问题。我会设置并回答,以便其他人可能会发现它有帮助 【参考方案1】:由于您使用的是自定义/表单身份验证,因此听起来您在用户通过身份验证后没有设置 IPrinicipal 详细信息。
您可以follow this documentation(查找“创建表单身份验证 Cookie”部分)了解如何在您的应用中设置此代码。这并不像看起来那么难。
【讨论】:
【参考方案2】:试试这个:
Page.User.Identity.Name
【讨论】:
以上是关于asp.net Web 应用程序返回 IIS 信息而不是当前用户凭据的主要内容,如果未能解决你的问题,请参考以下文章
部署在 IIS 上的 ASP.NET Core 对长时间运行的请求返回 502 错误
ASP.NET Core RC2 IIS 在选项请求上返回 502
ASP.NET Web Api HttpResponseException 400 (Bad Request) 被 IIS 劫持