【问题标题】:HttpContext.User.Identity.Name in a deployed application已部署应用程序中的 HttpContext.User.Identity.Name
【发布时间】:2012-04-06 14:56:45
【问题描述】:

对于 ASP.NET MVC 2 应用程序,我们使用 HttpContext.User.Identity.Name 获取用户名以进行身份​​验证。这在测试时工作正常。数据库中的用户能够访问他们有权访问的区域,否则会被重定向到 401 页面。 401 页面显示他们的用户名,说明此用户无权访问此内容。

但是,在已部署的环境中,所有访问应用程序任何部分的尝试都会重定向到 401 页面,并且显示的用户名是空白的!

我们如何让部署的应用程序访问请求的用户名?

根据我的研究,我应该转到以下屏幕并启用 Windows 身份验证,但它不在列表中!

【问题讨论】:

  • 您使用什么身份验证方案? Windows 集成?表格?
  • 您要部署到服务器场吗?在服务器场上使用会话变量时遇到了问题。
  • 我们目前正在测试本地机器的部署。
  • 你是如何执行授权的?您可能需要在 IIS 应用程序中禁用匿名身份验证,以强制来自浏览器的身份验证响应。
  • @DavidNelson 试过了,得到了 IIS 401。HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers.

标签: c# asp.net iis asp.net-mvc-2 authentication


【解决方案1】:

我们遇到了这样的问题,我们最终要做的是关闭 IIS 中的匿名访问。记得检查底部的集成框。希望这会有所帮助

【讨论】:

  • “底部集成框”——底部是什么?
  • 关于 IIS 中的匿名访问窗口。如果您以前没有见过,请告诉我。
  • 我没有。原来我只需要禁用匿名访问并启用 Windows。最大的障碍是 Windows 不在列表中,必须打开该功能(参见接受的答案)。
【解决方案2】:

啊,如果您使用的是 IIS 7,您可能需要先安装它! Here's a good overview.自贸区:

IIS 7 的默认安装不包括 Windows 身份验证角色服务。要在 IIS 上使用 Windows 身份验证,您 必须安装角色服务,禁用匿名身份验证 您的网站或应用程序,然后启用 Windows 身份验证 用于网站或应用程序。

如果您没有将其视为一个选项,那么您可能没有安装它。

(来自我的 Winodws 7 机器,)转到“开始”菜单并键入:打开或关闭 Windows 功能

接下来,在对话框的树形视图中,转到 Internet 信息服务 - 万维网服务 - 安全,然后选中 Windows 身份验证 复选框.

【讨论】:

  • 谢谢!我发现了这些信息,当您发布此信息时,刚刚完成了所有工作!我只需要打开 Windows 功能即可将其加入列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 2015-08-16
相关资源
最近更新 更多