【问题标题】:Configuring Windows Authentication with MVC (4)使用 MVC 配置 Windows 身份验证(四)
【发布时间】:2014-08-21 15:21:33
【问题描述】:

在我的本地机器上测试和开发时,我用来在域上使用 User.Identity.Name 获取我的用户名的代码运行良好。

现在我已发布到本地服务器,应用程序不断将我重定向到 /login.aspx?ReturnUrl= 页面,但我收到 401 - Unauthorized 错误。

我不知道下一步该做什么。以下是我目前采取的步骤:

  • 在 IIS 和我的项目属性中禁用匿名身份验证
  • 添加到 Web.config
  • 在我的所有控制器上设置 [Authorize]
  • 在我的项目属性上启用了 Windows 身份验证

如果我在本地服务器上运行站点,错误会更详细一点:

HTTP Error 401.2 - Unauthorized
You are not authorized to view this page due to invalid authentication headers.

然后我不确定这个错误是否与通常的 401 不同。

有什么想法吗?

【问题讨论】:

  • 你说你在iis上禁用了匿名身份验证,它说启用了什么身份验证?
  • 你被重定向是什么意思?发布后,(默认窗口)授权由 IIS 处理。如果您可以提供有效的凭据,您只会访问您的应用程序。你得到一个登录对话框弹出?顺便说一句,@BenRobinson 暗示的是,禁用匿名身份验证和启用 Windows 身份验证是不够的,但您还必须从 IIS 禁用表单身份验证。
  • 在 IIS 上没有启用任何身份验证(匿名、模拟和表单)。 IIS 中没有 Windows 身份验证选项。没有登录弹出窗口。当我转到我的应用程序的 URL 时,例如 192.168.0.1/TheApp/ - 它会自动更改为 192.168.0.1/TheApp/login.aspx?ReturnUrl=... 我已经是 AD 域的一部分,所以我没有想要弹出任何东西,我只想让它知道我的用户名。
  • 您要么部分安装了 IIS,要么没有在正确的应用程序池中设置应用程序。确保您的应用安装在 .Net 4.0 集成应用程序池中
  • @drminnaar 这实际上是我所暗示的。您需要在 iis 中启用 windows 身份验证(或某种形式的身份验证)。如果您没有身份验证,则无法对用户进行身份验证。 Windows 身份验证是一个可选的 iis 组件。如果您没有将其视为一个选项,那么您需要安装它。如何执行此操作取决于服务器上的 Windows 版本。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 authentication


【解决方案1】:

原来我发布到的服务器没有安装正确的身份验证类型。已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2010-11-27
    相关资源
    最近更新 更多