【问题标题】:IIS Express Windows AuthenticationIIS Express Windows 身份验证
【发布时间】:2011-06-13 08:22:32
【问题描述】:

我正在尝试将 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。是否有我缺少的配置设置?

【问题讨论】:

    标签: visual-studio-2010 visual-studio windows-authentication iis-express


    【解决方案1】:

    选项-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 应用程序主机配置文件可能位于此处:

    $(solutionDir)\.vs\config\applicationhost.config
    

    项目文件中的&lt;UseGlobalApplicationHostFile&gt; 选项选择默认或特定于解决方案的配置文件。

    【讨论】:

    • 谢谢。但我确实尝试了上面的选项。但我仍然无法使用 Windows 身份验证。我想我只需要等待 VS2010 / SP1 来获得这个功能。
    • 选项二对我有用。不过花了一段时间才找到这篇文章!
    • 自从VS2010 sp1出来后,这个问题就不再适用了。我试图让它在不安装 sp1 的情况下工作。我的猜测是 sp1 正在做一些我无法弄清楚的第一次设置。我可以继续将此答案标记为正确,尽管实际上不是,因为未安装 sp1 是先决条件。
    • 谢谢你! NTLM 通过禁用匿名身份验证来工作。
    • 在 VS2015 中,IIS Express 配置移到了解决方案结构中,特别是 $(SolutionDir)\.vs\config\applicationhost.config 遗憾的是它没有考虑 MyDocuments\IISExpress 下的现有配置,所以任何自定义都需要读取。
    【解决方案2】:

    根据 booij boy 的回答,检查您是否在 控制面板 -> 程序 -> 打开或关闭 Windows 功能 -> Internet 信息服务 -> 万维网服务 -> 安全

    此外,使用 firefox 或 Internet Explorer 时似乎有很大的不同。 在启用“windows 身份验证”后,它对我有用,但仅在 IE 中。

    【解决方案3】:

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

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

    我相信这个解决方案优于 vikomall 的选项。

    • 选项 #1 是针对所有 IIS Express 站点的全局更改。
    • 选项 #2 在 web.config 中留下了开发的麻烦。
      • 此外,部署到 IIS 7.5 时可能会导致错误,除非您在 IIS 服务器的 applicationHost.config 上执行“解锁”过程。

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

    更多信息在这里: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx

    【讨论】:

    • 为了强调我错过的内容 - 属性上下文菜单和 Alt-Enter 快​​捷方式并不能完全取代允许您更改是否启用 Windows 身份验证的属性窗格详细信息。使用F4 或单击属性窗格以实际查看属性。
    • 在重新开始这篇文章之前,我为这项任务苦苦挣扎了好几天:msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx 基本上,忽略原始帖子中的所有内容,从“处女”applicationhost.config 重新开始,然后启用设置按照这个答案。最后我获得了 Windows 身份验证!谢谢!!
    • 它最终将 .csproj 中的 IISExpressWindowsAuthentication 设置从“启用”更改为禁用。 已禁用
    • 这两个选项对我来说是灰色和禁用的。知道为什么吗?
    • 这 2 个选项显示为灰色,因为您的 IIS Express 配置中有此选项
      取出 overrideModeDefault="Allow",它们将不灰化
    【解决方案4】:

    除了这些出色的答案之外,在 IISExpress 开发环境的上下文中,为了阻止臭名昭著的“system.web/identity@impersonate”错误,您可以简单地确保在您的应用程序主机中进行以下设置.config 文件。

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

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

    有用的帖子:

    【讨论】:

    • 完全是偶然发现的,但它起作用了:-)
    【解决方案5】:

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

    在“功能视图”的IIS部分中选择所谓的功能“身份验证” 然后双击它。 您可以在此处启用 Windows 身份验证。 这也是可能的(我认为在线程中的一个建议中)通过 web.config 中的设置(...)

    但也许您有一个 web.config,您不想过多地浏览。 那么这个帖子不会有太多帮助,这就是我添加这个答案的原因。

    【讨论】:

      【解决方案6】:

      如果出现以下情况,此答案可能会有所帮助:1) 您的网站在升级到 Visual Studio 2015 之前曾经使用 Windows 身份验证,并且 2) 并且您的网站正在尝试加载 /login.aspx(即使您的网站上没有此类文件) .

      将以下两行添加到您网站的Web.configappSettings部分。

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

      【讨论】:

        【解决方案7】:

        同上 - VS 2015,.vs\config\applicationhost.config 不可见或不可用。

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

        如果找不到 .vs 文件夹,请按照以下步骤操作。

        1. 右键单击解决方案文件夹
        2. 选择“属性”
        3. Attributes部分,点击Hidden复选框(默认未选中),
        4. 然后点击“应用”按钮
        5. 将显示确认窗口“将更改应用到此文件夹、子文件夹和文件”选项已选中,点击“确定”。

          重复步骤 1 到 5,除了在 step 3 上,这一次您需要 uncheck 之前检查的“隐藏”选项。

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

        【讨论】:

          【解决方案8】:

          在完成上述答案中的所有操作后,我发现我没有以管理员身份运行 Visual Studio。以管理员身份运行后,问题解决了。

          【讨论】:

            【解决方案9】:

            如果没有任何答案有帮助,您可能需要调整项目属性。查看其他 StackOverflow 答案以了解如何执行此操作:

            https://stackoverflow.com/a/20857049/56621

            【讨论】:

              【解决方案10】:

              我正在使用 Visual Studio 2019 针对 ASP.Net 应用程序进行开发。以下是对我们有用的:

              1. 打开您的项目属性窗口,禁用 匿名身份验证 并启用 Windows 身份验证
              2. system.web 下的 Web.Config

              &lt;authentication mode="Windows"&gt;&lt;/authentication&gt;p

              而且我没有更改 iis express 中的 application.config。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2011-07-22
                • 1970-01-01
                • 1970-01-01
                • 2018-05-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多