IIS Express Windows身份验证

我试图使用IIS Express与VS2010托管一个silverlight应用程序。我修改了我的applicationhost。配置文件,以允许修改正确的配置设置。我有以下在我的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一起工作。是否有我遗漏的配置设置?

150815 次浏览

选项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中的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/ < / p >

在安装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>选项选择默认或特定于解决方案的配置文件。

根据booij boy的答案,检查你是否检查了“windows身份验证”功能 控制面板->程序->打开或打开windows功能-> Internet信息服务->万维网服务->安全

此外,使用firefox或ie浏览器时,似乎有很大的区别。 在启用“windows身份验证”后,它对我有效,但只在IE中

Visual Studio 2010 SP1和2012增加了对IIS Express的支持,无需编辑尖括号。

  1. 如果你还没有,右键单击一个web风格的项目,选择“使用IIS Express…”。
  2. 一旦完成,选择web项目并按F4来聚焦属性面板。
  3. 设置“Windows身份验证”属性为启用,“匿名身份验证”属性为禁用。

enter image description here

我相信这个解决方案比vikomall的选择更好。

  • 选项#1是所有IIS Express站点的全局更改。
  • 选项2将开发任务留在web.config中。
    • 此外,它可能会导致部署到IIS 7.5时出现错误,除非您遵循IIS服务器的applicationHost.config上的“解锁”过程。
    • 李< / ul > < / >

    上述基于ui的解决方案使用IIS Express的applicationHost中特定于站点的位置元素。配置保持应用程序不变。

    更多信息: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx < / p >

除了这些伟大的答案,在IISExpress开发环境的背景下,为了阻止臭名昭著的“系统”。错误时,您可以简单地确保以下设置在您的applicationhost中到位。配置文件。

<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>

这将使您在开发和测试期间具有更大的灵活性,但在这样做之前,请确保您理解在生产环境中使用此设置的含义。

有用的帖子:

在IIS管理器中单击您的站点。 你需要“在功能视图”(而不是“内容视图”)

在“特性视图”的IIS部分选择所谓的特性“认证” 双击它。 在这里您可以启用Windows身份验证。 这也是可能的(我认为在线程中的建议之一)通过在网络中的设置。Config(…)

. Config(… 但是也许你有一张网。配置,你不希望擦洗太多。 那么这个线程不会有太大的帮助,这就是为什么我添加了这个答案

这个答案可能有助于:1)你的网站在升级到Visual Studio 2015之前使用Windows身份验证和2)你的网站正在尝试加载/login.aspx(即使你的网站上没有这样的文件)。

将以下两行添加到站点的Web.config的__abc0部分。

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

同样的注意- VS 2015, . VS \config\applicationhost。配置不可见或不可用。

默认情况下。vs文件夹是隐藏的(至少在我的情况下)。

如果您无法找到.vs文件夹,请执行以下步骤。

  1. 右键单击Solution文件夹
  2. 选择“属性”
  3. Attributes部分,单击Hidden复选框(默认未选中),
  4. 然后点击“应用”按钮
  5. 它将显示确认窗口“应用更改到此文件夹,子文件夹和文件”选项选中,点击“Ok”。 < br > < br > 重复第1到5步,除了在step 3上,这一次你需要uncheck你之前选中的'Hidden'选项

现在应该可以看到。vs文件夹了。

在做了上面回答的所有事情之后,我发现我不是以管理员的身份运行Visual Studio。以管理员身份运行后,问题解决了。

如果这些答案都没有帮助,您可能需要调整项目属性。查看另一个StackOverflow的答案如何做到这一点:

https://stackoverflow.com/a/20857049/56621 < a href = " https://stackoverflow.com/a/20857049/56621 " > < / >

我使用visual studio 2019开发ASP。网络应用程序。以下是对我们有效的方法:

  1. 打开你的项目属性窗口,禁用匿名身份验证和启用Windows身份验证
  2. 在你的网络。配置下的包含

<authentication mode="Windows"></authentication>p

And I didn't change application.config in iis express.