1

对于我的 ASP.Net WebForms 应用程序中的每个页面,我都会像这样检查用户的访问权限:

protected void Page_Load(object sender, EventArgs e) {
    if (!UserCanAccessPage())
        RedirectToAccessNotPermitted();

    // < if user has access, set up the page >
}

我的问题是,单次检查是否足够,或者我应该检查所有其他处理程序:

protected void seriousDeleteButton_Click(object sender, EventArgs e) {

    // ** DO I NEED TO CHECK ACCESS AGAIN HERE? **

    // < do stuff that only some users have access to >
}

我知道在正常的页面生命周期下,Page_Load()应该始终在事件处理程序之前调用,但我想知道是否有一种棘手的方法可以curl使用 javascript 或其他东西来访问其他 ASP.NET 端点。

(我只是在谈论常规的 WebForms 风格的回发,没有明确的 AJAX 内容。但当然UpdatePanel使用异步 javascript,我确信其他控件也可以这样做。)

4

1 回答 1

2

是的,这就足够了,因为每次用户请求新页面或回发页面时都会调用 Page_Load。您无需再次检查按钮单击事件。

但是,对于有几页的网站来说,这很好。换句话说,如果你有多个页面,维护将是一场噩梦。

通常,您希望使用表单身份验证,并使用 web.config 限制对页面的访问。

于 2013-08-15T19:54:12.943 回答