Iis 7 Azure Web App-通过applicationHost.xdt添加基本身份验证?

Iis 7 Azure Web App-通过applicationHost.xdt添加基本身份验证?,iis-7,azure-web-app-service,Iis 7,Azure Web App Service,我有一个Azure Web应用程序,在Web.config中为非PROD环境配置了基本身份验证,如下所示: <configSections> <section name="basicAuth" type="Devbridge.BasicAuthentication.Configuration.BasicAuthenticationConfigurationSection" /> </configSections>

我有一个Azure Web应用程序,在Web.config中为非PROD环境配置了基本身份验证,如下所示:

    <configSections>
            <section name="basicAuth" type="Devbridge.BasicAuthentication.Configuration.BasicAuthenticationConfigurationSection" />
        </configSections>
        <basicAuth allowRedirects="true">
            <credentials>
                <add username="username" password="password"/>
            </credentials>
        </basicAuth>
        <system.webServer>
            <modules>
              <add name="MyBasicAuthenticationModule" type="Devbridge.BasicAuthentication.BasicAuthenticationModule"/>
            </modules>
<!-- the rest of the web.config follows -->

一切正常,但每当我们在web.config上进行PROD部署时,都需要手动更改文件以禁用基本身份验证(如前所述,我们只需要在非PROD上使用它)

所以我想知道-有没有办法使用applicationHost.xdt文件启用基本身份验证?由于这是一个不经常更改的文件,它将使我们的生活更轻松

我已经检查了IIS管理器扩展,但没有看到任何允许我进行此操作的内容。任何提示都将不胜感激

更新-添加我的web.config(我想用applicationHost.xdt更新它)


根据您的描述,我假设您使用的是支持Windows Azure网站基本身份验证的。我遵循这个项目来测试我这边的XDT转换。我可以让它在我这边运行,你可以参考它

1.创建
Release dev
配置

单击“构建>配置管理器”,为web项目添加新配置

2.添加名为
web.Release-dev.config
的web配置文件,并按如下方式配置内容:


. 此外,您还可以按照这位官员的指示了解Web.config转换文件中使用的
xdt:Transform
xdt:Locator
属性的语法

3.使用
release dev
配置发布web项目:

4.通过KUDU检查部署的web.config文件:

浏览该网站,您可以看到以下屏幕截图:

更新

为了解决这个问题,我假设您可以从git存储库中排除web.config文件。并在“D:\home\site\wwwroot”下添加web.config文件,并在“D:\home\site\wwwroot\bin”下为您的开发和QA环境添加
Devbridge.BasicAuthentication.dll
,以启用基本身份验证,如下所示:


根据您的描述,我假设您使用的是支持Windows Azure网站基本身份验证的。我遵循这个项目来测试我这边的XDT转换。我可以让它在我这边运行,你可以参考它

1.创建
Release dev
配置

单击“构建>配置管理器”,为web项目添加新配置

2.添加名为
web.Release-dev.config
的web配置文件,并按如下方式配置内容:


. 此外,您还可以按照这位官员的指示了解Web.config转换文件中使用的
xdt:Transform
xdt:Locator
属性的语法

3.使用
release dev
配置发布web项目:

4.通过KUDU检查部署的web.config文件:

浏览该网站,您可以看到以下屏幕截图:

更新

为了解决这个问题,我假设您可以从git存储库中排除web.config文件。并在“D:\home\site\wwwroot”下添加web.config文件,并在“D:\home\site\wwwroot\bin”下为您的开发和QA环境添加
Devbridge.BasicAuthentication.dll
,以启用基本身份验证,如下所示:


谢谢。我尝试部署上面提到的applicationHost.xdt(顺便说一句,这是一个PHP应用程序,不是.NET,我们不使用VS,而是直接与GitHub集成进行部署)。我收到以下错误-“配置节'system.webServer/modules'已经定义。每个配置文件只能出现一次节。”,但我没有在web.Config中定义模块节(请参阅q的更新内容)。请忽略我对您的场景的误解。根据您最新更新的内容,您的意思是您正在尝试在
applicationHost.xdt
文件中添加URL重写规则以禁用基本身份验证吗?如果是这样,有一个xdt转换示例,您可以参考它。此外,您可以在Azure Portal上的web应用程序的“开发工具”>“扩展”刀片下安装名为“重定向HTTP到HTTPS”的站点扩展,或者通过KUDU安装扩展。您好,Bruce,抱歉误解:)情况是这样的-我们有一个web.config,它有很多规则,上面提到了一些关键的规则(所以http->https重定向,对于DEV和QA-basic auth),我们也有一些重写,等等。因为web,config在SCM中,我们需要记住,每次将更改部署到PROD时,都要手动删除基本auth部分(否则PROD将获得基本auth)。我想要实现的是让applicationHost.xdt自动在DEV和QA上添加基本身份验证,这样我们就不必在web.config中硬编码它。我希望这一次很清楚:)我已经尝试利用Azure上“D:\home\site”中的applicationHost.xdt来传输您在Web.config中配置的基本身份验证配置。但我发现它会将applicationHost.xdt中的配置传输到web应用程序的applicationHost.config(C:\DWASFiles\Sites\\{sitename}\Temp\applicationHost.config)中。然而,
Devbridge.BasicAuthentication.dll
将只读取“D:\home\site\wwwroot\web.config”中的配置,因此我假设使用applicationHost.xdt无法实现启用基本身份验证。有关解决方法,请参阅我的更新。谢谢。我尝试部署提到的applicationHost.xdt(顺便说一句,thi
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect to HTTPS" stopProcessing="true">
                    <match url="(.*)"/>
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$"/>
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>