【发布时间】:2013-08-18 02:08:23
【问题描述】:
对于我的 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 访问其他 ASP.NET 端点或使用 javascript 或东西。
(我只是在谈论常规的 WebForms 样式的回发,没有明确的 AJAX 内容。但当然 UpdatePanel 使用异步 javascript,我确信其他控件也可以这样做。)
【问题讨论】:
-
听起来您重新发明了内置的身份验证和授权机制。为什么不直接切换到现有的基于表单身份验证的方法?
-
我们确实使用内置身份验证(“Windows”身份验证)来确保所有用户都经过身份验证。我说的是对特定页面和功能的更精细的访问控制,例如“项目经理只能对他们负责的项目进行更改”之类的。这类事情需要在代码中完成。
标签: asp.net authentication webforms