Iis 7 Azure Web App-通过applicationHost.xdt添加基本身份验证?
我有一个Azure Web应用程序,在Web.config中为非PROD环境配置了基本身份验证,如下所示: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>
<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>