我有一个Azure Web App,其基本身份验证配置为web.config中的非PROD环境,如下所示:
for (WebElement trElement : tblLookupSites) {
List<WebElement> td_collection = trElement.findElements(By.xpath("td"));
for (WebElement tdElement : td_collection) {
List<WebElement> td_lblcollection =tdElement.findElements(By.id("id1"));
td_lblcollection.get(0).click();
}
}
一切正常,但每当我们对web.config进行更改进行PROD部署时,需要手动更改文件以禁用基本身份验证(如上所述,我们仅在非prod上需要它)。
所以我想知道 - 有没有办法用applicationHost.xdt文件启用基本身份验证?由于这是一个不经常更改的文件,它会让我们的生活更轻松。
我已经检查过IIS管理器扩展,但是没有看到任何可以让我工作的东西。任何提示都表示赞赏!
更新 - 添加我的web.config(我想用applicationHost.xdt更新)
<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 -->
答案 0 :(得分:1)
根据您的描述,我假设您使用DevBridge Azure Power Tools支持Windows Azure网站的基本身份验证。我按照这个项目Devbridge.BasicAuthentication.Test来测试XDT Transform。我可以让它在我身边工作,你可以参考它。
1.创建Release-dev
配置
点击&#34;构建&gt; Configuration Manager&#34;,为Web项目添加新配置。
2.添加名为Web.Release-dev.config
的Web配置文件,并按如下方式配置内容:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--make sure the configSections is the first child element under configuration-->
<configSections xdt:Transform="InsertBefore(/configuration/*[1])" />
<configSections xdt:Locator="XPath(/configuration/configSections[last()])">
<section name="basicAuth" type="Devbridge.BasicAuthentication.Configuration.BasicAuthenticationConfigurationSection" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)"/>
</configSections>
<configSections xdt:Transform="RemoveAll" xdt:Locator="Condition(count(*)=0)" />
<basicAuth allowRedirects="true" xdt:Transform="InsertAfter(/configuration/configSections)">
<credentials xdt:Transform="InsertIfMissing">
<add username="test" password="test" xdt:Transform="InsertIfMissing"/>
</credentials>
</basicAuth>
<system.webServer xdt:Transform="InsertIfMissing">
<modules xdt:Transform="InsertIfMissing">
<add name="MyBasicAuthenticationModule" type="Devbridge.BasicAuthentication.BasicAuthenticationModule" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)"/>
</modules>
</system.webServer>
</configuration>
注意:您可以参考Xdt transform samples。此外,您可以按照此官方document了解您在Web.config转换文件中使用的xdt:Transform
和xdt:Locator
属性的语法。
3.使用release-dev
配置发布Web项目:
4.通过KUDU检查已部署的web.config文件:
浏览网站,您可以看到以下屏幕截图:
<强>更新强>
对于解决方法,我假设您可以从git存储库中排除web.config文件。并在&#34; D:\ home \ site \ wwwroot&#34;下添加web.config文件。和Devbridge.BasicAuthentication.dll
在&#34; D:\ home \ site \ wwwroot \ bin&#34;为您的DEV和QA环境启用基本身份验证,如下所示: