我正在尝试使用IIS Express和VS2010来托管Silverlight应用程序。我修改了我的applicationhost.config文件以允许修改正确的配置设置。我在web.config中有以下内容:
<location path="">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
我没有通过身份验证,我的域服务调用会以用户身份返回空记录。安装VS2010 SP1 BETA之后,我能够让这个工作正常工作,但我试图让它只用于IIS Express。
如何启用Windows身份验证以使用IIS Express。是否有我缺少的配置设置?
答案 0 :(得分:397)
Visual Studio 2010 SP1和2012添加了对IIS Express的支持,无需编辑尖括号。
我相信这个解决方案优于vikomall的选择。
上面的基于UI的解决方案在IIS Express的applicationHost.config中使用特定于站点的位置元素,使应用程序保持不变。
更多信息: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx
答案 1 :(得分:272)
选项-1 强>:
编辑\My Documents\IISExpress\config\applicationhost.config
文件并启用windowsAuthentication,即:
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
选项-2 强>:
解锁\ My Documents \ IISExpress \ config \ applicationhost.config中的windowsAuthentication部分,如下所示
<add name="WindowsAuthenticationModule" lockItem="false" />
将所需身份验证类型的覆盖设置更改为“允许”
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
在应用程序的web.config中添加以下内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
以下链接可能有所帮助: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
安装VS 2010 SP1后,可能需要使用选项1 + 2才能使Windows身份验证正常工作。此外,您可能需要在IIS Express applicationhost.config中将匿名身份验证设置为false:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
对于VS2015,,IIS Express applicationhost配置文件可能位于此处:
$(solutionDir)\.vs\config\applicationhost.config
并且项目文件中的<UseGlobalApplicationHostFile>
选项选择默认或特定于解决方案的配置文件。
答案 2 :(得分:9)
根据booij boy的回答,检查您是否选中了“Windows身份验证”功能 控制面板 - &gt;程序 - &gt;打开或关闭窗口功能 - >互联网信息服务 - &gt;万维网服务 - &gt;安全
此外,使用firefox或Internet Explorer时似乎有很大的不同。 在启用“Windows身份验证”之后,它适用于我,但仅适用于IE。
答案 3 :(得分:5)
除了这些出色的答案之外,在IISExpress开发环境的上下文中,为了阻止臭名昭着的“system.web/identity@impersonate”错误,您可以简单地确保应用程序主机中存在以下设置: .config文件。
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
这将使您在开发和测试期间具有更大的灵活性,但请务必在此之前了解在生产环境中使用此设置的含义。
有用的帖子:
答案 4 :(得分:2)
在IIS管理器中,单击您的站点。 您需要“在功能视图中”(而不是“内容视图”)
在“功能视图”的IIS部分中选择所谓的“身份验证”功能 并且doulbe点击它。 您可以在此处启用Windows身份验证。 通过web.config(...)
中的设置也可以(我认为在线程中的一个建议中)但也许你有一个web.config,你不想过多地注释。 那么这个帖子就不会有太多的帮助,这就是为什么我添加了这个答案。
答案 5 :(得分:0)
如果出现以下情况,此答案可能会有所帮助:1)您的网站在升级到Visual Studio 2015之前曾经使用过Windows身份验证,2)并且您的网站正在尝试加载/login.aspx
(即使您的网站上没有此类文件)位点)。
将以下两行添加到网站appSettings
的{{1}}部分。
Web.config
答案 6 :(得分:0)
默认情况下.vs文件夹是隐藏的(至少在我的情况下)。
如果您无法找到.vs文件夹,请按照以下步骤操作。
Attributes
部分,点击Hidden
复选框(默认未选中),step 3
除外,这次你需要uncheck
隐藏&#39;您之前检查过的选项。现在应该可以看到.vs文件夹了。
答案 7 :(得分:0)
在完成上述答案中的所有内容之后,我发现我没有以管理员身份运行Visual Studio。以管理员身份运行后,问题就解决了。
答案 8 :(得分:0)
如果所有答案都无济于事,则可能需要调整项目属性。检查有关此操作的其他StackOverflow答案:
答案 9 :(得分:0)
我正在使用 Visual Studio 2019 针对 ASP.Net 应用程序进行开发。以下是对我们有用的方法:
<authentication mode="Windows"></authentication>p
而且我没有更改 iis express 中的 application.config。