如何在没有web.config的情况下限制对文件夹中所有文件的访问

时间:2010-06-14 15:42:59

标签: .net asp.net authorization

我需要限制对某些人访问我的管理员文件夹。那些没有身份验证票证的人应该被重定向到“不允许的页面”。如何识别管理员文件夹中的所有页面。到目前为止,我还好吗?

If url.Contains("/admin") Then

'如果身份验证票据不正确,那么

        `Response.Redirect("~/notallowed_admin.aspx")`

End If

而不是,我不能使用我的web.config来解决这个问题。

非常感谢

2 个答案:

答案 0 :(得分:1)

您应该将安全检查置于Global.asax

此外,用regexp更精确的匹配来替换你的条件是明智的,以避免偶尔的不匹配。

    protected override void Application_BeginRequest(Object sender, EventArgs e) {
        if (Regex.IsMatch(Request.Url.ToString(),@".*/system\.aspx/admin.*\.aspx",RegexOptions.IgnoreCase)) {
            Response.Redirect("~/AdminSecurityCheck.aspx");
            return;
        }
        .......
    }

答案 1 :(得分:0)

在大多数情况下,

If url.contains("/admin")就足够了。但是,大多数程序员会发现它有点像KLUDGE。

您还可以编写一个抽象类来继承Page类,其中包含检查授权然后重定向的代码。然后,您可以为admin文件夹中的所有代码隐藏文件声明类以继承该类。

我相信是的,你想做的事情是可能的,尽管你所做的任何事情都会从.net的观点来看,因为web.config是MS提供的,用于指定如何进行授权。 / p>