帮助:如何在 ASP.NET 开发服务器上启用 Windows 身份验证?

Posted

技术标签:

【中文标题】帮助:如何在 ASP.NET 开发服务器上启用 Windows 身份验证?【英文标题】:Help: How to enable Windows Authentication on ASP.NET Development Server? 【发布时间】:2010-10-25 15:50:22 【问题描述】:

我希望你们中的任何人都知道如何解决我们遇到的这个问题。

我们正在尝试通过网络托管 WCF 服务。我们将 web.config 设置为让服务需要 Windows 身份验证。我们遇到的问题如下:

当我们在常规 IIS 中托管服务时,服务运行良好,并且“Windows 身份验证”模式没有问题。但是,当我们尝试从开发人员框中运行它时,我们会收到以下错误:“此服务的安全设置需要 Windows 身份验证,但托管此服务的 IIS 应用程序未启用它。”

我们的开发人员箱不是通过常规 IIS 托管服务,而是通过 Visual Studio 的 APS.NET 开发服务器。我们尝试进入 Web 项目属性并说启用 NTLM 身份验证,但仍然没有解决它。有谁知道如何修理它? VS ASP.NET 开发服务器甚至支持 Windows 身份验证吗?使用 Windows 身份验证托管服务的唯一选择是使用 IIS 并忘记 ASP.NET 开发服务器吗?

谢谢 查克

【问题讨论】:

我不可避免地最终在开发盒上使用了 IIS。虚拟目录是原因之一。一个更普遍的原因是确保开发环境尽可能地模拟生产服务器。不过,开发人员需要做更多的设置工作。 【参考方案1】:

为了配置 IIS Express 安全设置:

    在任务栏(系统托盘)中查找 IIS express 符号。 右键单击并选择“所有应用程序”。 点击您要更改的网站的名称(虽然我相信更改是网站范围的) 点击下方配置部分的路径(会打开applicationhost.config文件) 搜索身份验证部分并进行更改

可在此处找到示例更改:

http://toadcode.blogspot.ca/2011/08/security-config-in-iis-express.html

【讨论】:

谢谢布雷特!在我尝试过的所有解决方案中,这对我有用。如果尝试上述解决方案,请确保不要将以下内容放入您的配置中:. 非常感谢!我升级到 VS 2015 时遇到了这个问题,但您的解决方案为我解决了这个问题!【参考方案2】:

ASP.Net 开发服务器非常有限。它只提供来自运行它的同一台机器的请求,它不会提供超出其应用程序范围的文件。它基于 Cassini 服务器。 Cassini 不支持 WCF Web 服务。 ASP.Net Development Server 的文档说它确实支持 NTLM。如果您只是从本地计算机浏览到一个页面,它应该可以正常工作,除非该页面引用了不可用的资源。

查看http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx 了解更多信息。

【讨论】:

【参考方案3】:

我会在您的本地开发机器上安装和配置 IIS,并优先使用它而不是使用内置的网络服务器。要使用本地 IIS 进行调试,请在项目属性的 Web 选项卡上选择“用户本地 IIS Web 服务器”。使用 IIS 而不是内置的网络服务器还意味着您可以以与在生产服务器上配置完全相同的方式配置您的应用程序,这将减少您迁移到生产环境时潜在的意外情况。

【讨论】:

【参考方案4】:

我的授权问题的解决方案是进入 F4 项目属性并设置以下内容:

Anonymous Authentication: Disabled

Windows Authentication: Enabled

显然这些属性直接更新了 IIS applicationHost.config。

http://provenstyle.com/blog/2015/10/02/Visual-Studio-2015-Windows-Authentication-And-IIS-Express/

【讨论】:

以上是关于帮助:如何在 ASP.NET 开发服务器上启用 Windows 身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET Web 窗体中的特定 URL 上启用 CORS

如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书

AddCors 在 asp.net 5.0 中不起作用。如何启用它?

如何以编程方式在 ASP.NET 4.0 GridView 上启用分页和排序?

如何在 ASP.net Core WebAPI 中启用 CORS

如何在 ASP.NET Core 中启用 CORS