我在web.config
<location path="SomeDir/SomeSubDir">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
如何更改此设置,以便此规则仅在应用未在localhost上运行时适用?有没有办法让规则检测环境?
由于
答案 0 :(得分:1)
我会从web.config中删除deny,并在页面加载事件中使用类似的东西。
if(!HttpContext.Current.Request.IsLocal && !User.Identity.IsAuthenticated)
Response.Redirect("Login.aspx");
答案 1 :(得分:0)
Config Transformations将为您提供一个Web.Release.config,当您使用Release设置发布时,它将转换您的Web.Config。
如果您还没有转换文件,则需要右键单击Web.config文件,然后单击“添加配置转换”。
以下是MSDN How to: Transform Web.config When Deploying a Web Application Project。
您的Web.Release.config文件如下所示:
<configuration xmlns:xdt="...">
<location xdt:Locator="Match(path)" xdt:Transform="Remove" />
</configuration>
当您执行发布发布时,这将导致删除该位置元素。