我如何限制访问文件夹中的所有文件没有web.config
问题描述:
我需要限制访问我的管理文件夹给某些人。那些没有身份验证票据的应该被重定向到“不允许的页面”。如何识别我的管理文件夹中的所有页面。我到目前为止,但可以吗?我如何限制访问文件夹中的所有文件没有web.config
If url.Contains("/admin") Then
“如果身份验证票证不正确,
`Response.Redirect("~/notallowed_admin.aspx")`
End If
而且不,我不能用我的web.config对于此问题。
非常感谢
答
你应该把安全检查的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;
}
.......
}
答
If url.contains("/admin")
应该是在大多数情况下足够了。尽管如此,大多数程序员会发现它是有点儿的。
您也可以编写一个抽象类继承Page
类,该类包含检查授权然后重定向的代码。然后,您可以声明admin文件夹中所有代码隐藏文件的类来继承该类。
我相信是的,你想要做什么是可能的,尽管你做的任何事情都会是一个.net观点的KLUDGE形式,因为web.config是MS提供的指定如何进行授权的内容。
非常感谢。我正在使用web.config来限制对整个网站的访问,但只有拥有“管理员帐户”的用户才能访问管理员部分。这些人的用户名存储在用户访问该站点时所调用的数据库中。如果有管理员帐户,则管理员部分可用,否则他们只能看到网站的其他部分。 – netNewbi3 2010-06-14 17:55:25
如果您使用AD帐户,则可以使用目录安全性设置限制。 – 2010-06-14 20:50:36
我在其他网站上多次使用这种方法,我更喜欢它,因为它对我来说更清楚一点,哪些页面实际上受到限制。 – 2010-06-18 21:17:24