仅在localhost上运行时授权目录

时间:2014-06-19 00:51:45

标签: asp.net

我在web.config

中有这个
<location path="SomeDir/SomeSubDir">
    <system.web>
        <authorization>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

如何更改此设置,以便此规则仅在应用未在localhost上运行时适用?有没有办法让规则检测环境?

由于

2 个答案:

答案 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>

当您执行发布发布时,这将导致删除该位置元素。