20

Windows authentication works good when I host my ASP.NET MVC project on IIS. But if I run it from Visual Studio - it doesn't.

Here is my Web.config:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

Am I missing something?

4

3 回答 3

45

如果您在 IIS Express 中托管(您可能应该这样做),请确保您在 Web 应用程序的属性中启用了 Windows 身份验证。

顺便说一句,如果您使用 Intranet 应用程序模板在 Visual Studio 中创建一个新的 ASP.NET MVC 4 应用程序,您将在屏幕上看到以下自述文件。所以继续,试试看,阅读它并按照那里写的内容进行操作:

要将此模板用于 Windows Azure 身份验证,请参阅 http://go.microsoft.com/fwlink/?LinkID=267940

否则,要将此模板用于 Windows 身份验证,请参阅以下说明:

在 IIS Express 上托管:

  1. 在解决方案资源管理器中单击您的项目以选择该项目。
  2. 如果“属性”窗格未打开,请将其打开 (F4)。
  3. 在项目的“属性”窗格中:
    a) 将“匿名身份验证”设置为“禁用”。
    b) 将“Windows 身份验证”设置为“启用”。

在 IIS 7 或更高版本上托管:

  1. 打开 IIS 管理器并导航到您的网站。
  2. 在功能视图中,双击身份验证。
  3. 在身份验证页面上,选择 Windows 身份验证。如果 Windows 身份验证不是一个选项,您需要确保在服务器上安装了 Windows 身份验证。

要在 Windows 上启用 Windows 身份验证:

a) 在控制面板中打开“程序和功能”。b) 选择“打开或关闭 Windows 功能”。c) 导航到 Internet 信息服务 > 万维网服务 > 安全并确保选中 Windows 身份验证节点。

要在 Windows Server 上启用 Windows 身份验证:

a) 在服务器管理器中,选择 Web 服务器 (IIS) 并单击添加角色服务。b) 导航到 Web 服务器 > 安全并确保选中 Windows 身份验证节点。

  1. 在“操作”窗格中,单击启用以使用 Windows 身份验证。
  2. 在身份验证页面上,选择匿名身份验证。
  3. 在“操作”窗格中,单击禁用以禁用匿名身份验证。
于 2013-06-11T13:26:07.857 回答
6

我无法让@Darin Dimitrov 解决方案正常工作(主要是因为我找不到 Visual Studio 中描述的 IIS Express 设置!)。

我发现我必须编辑 IIS Expressapplication.config文件:

  • 在 Visual Studio 2013 中,这是在%userprofile%\documents\iisexpress\config
  • 在 Visual Studio 2015 中,它位于解决方案config的隐藏.vs文件夹中的文件夹中(只需添加\.vs\configWindows 资源管理器即可到达那里)。

并修改:

<windowsAuthentication enabled="false">

至:

<windowsAuthentication enabled="true">
于 2018-03-28T08:54:43.743 回答
0

我知道这对这个问题来说已经很晚了,但对于 Visual Studio 2019,它略有变化。因此,如果您发现自己在调试器中对该解决方案进行了排序:

来自:微软文档

并取自那个对我有用的页面: 现有项目

该项目的属性启用 Windows 身份验证并禁用匿名身份验证:

在解决方案资源管理器中右键单击项目并选择属性。

选择调试选项卡。

清除启用匿名身份验证复选框。

选中启用 Windows 身份验证复选框。

保存并关闭属性页。

于 2021-05-26T18:24:20.740 回答