如何使用web.config
转换在我的作品web.config
中包含域属性?
我的基地web.config
中有以下内容。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
我尝试在web.prod.config
中使用以下内容,但在发布项目时不会添加该属性。
<authentication mode="Forms" xdt:Transform="Replace">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com" />
</authentication>
我希望输出如下。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com"/>
</authentication>
答案 0 :(得分:7)
这两个中的一个应该有效(未经测试,但基于Microsoft's documentation):
<system.web>
<authentication mode="Forms" xdt:Transform="Replace" xdt:Locator="Match(forms)">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" domain=".mydomain.com" />
</authentication>
</system.web>
<system.web>
<authentication mode="Forms">
<forms domain=".mydomain.com" xdt:Transform="SetAttributes(domain)" />
</authentication>
</system.web>
答案 1 :(得分:3)
如果没有看到整个配置,我无法确认这是否可行,但我会尝试添加一个定位器,以确保它抓住该行并进行转换。
所以而不仅仅是
<authentication mode="Forms" xdt:Transform="Replace">
在此路径中将匹配此类内容
尝试
<authentication mode="Forms" xdt:Transform="Replace" xdt:Locator="Match(mode)">
将明确地在该xpath上获取一个auth节点,其中mode = Forms,它应该与变换引擎产生1和1匹配并进行替换。
如果这不起作用,我会反转一下,看它是否完全转换(我怀疑),通过改变loginUrl ni转换只是为了看看它是否出现在另一边。
你有可能在某个地方遇到转换错误而且它只是没有应用。