2010-06-14 61 views
3

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

If url.Contains("/admin") Then

“如果身份验证票证不正确,

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

End If

而且不,我不能用我的web.config对于此问题。

非常感谢

回答

1

你应该把安全检查的Global.asax

而且,这将是明智的,代替你的正则表达式用更精确的匹配条件,以避免偶尔的不匹配。

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; 
     } 
     ....... 
    } 
0

If url.contains("/admin")应该是在大多数情况下足够了。尽管如此,大多数程序员会发现它是有点儿的。

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

我相信是的,你想要做什么是可能的,尽管你做的任何事情都会是一个.net观点的KLUDGE形式,因为web.config是MS提供的指定如何进行授权的内容。

+0

非常感谢。我正在使用web.config来限制对整个网站的访问,但只有拥有“管理员帐户”的用户才能访问管理员部分。这些人的用户名存储在用户访问该站点时所调用的数据库中。如果有管理员帐户,则管理员部分可用,否则他们只能看到网站的其他部分。 – netNewbi3 2010-06-14 17:55:25

+0

如果您使用AD帐户,则可以使用目录安全性设置限制。 – 2010-06-14 20:50:36

+0

我在其他网站上多次使用这种方法,我更喜欢它,因为它对我来说更清楚一点,哪些页面实际上受到限制。 – 2010-06-18 21:17:24

相关问题