【发布时间】:2011-07-25 06:04:16
【问题描述】:
我有一个网络表单应用程序。我网站上的几乎所有页面都受登录保护。目前我正在检查所有表单的 Page_Load 事件中是否存在会话。有没有一种方法可以只在一个适用于所有页面的地方完成。
【问题讨论】:
-
TheGeek 有您问题的答案;但是您是否正在检查用户是否通过会话变量登录?如果你是,有更好的内置方法。 (例如 FormsAuthentication)
我有一个网络表单应用程序。我网站上的几乎所有页面都受登录保护。目前我正在检查所有表单的 Page_Load 事件中是否存在会话。有没有一种方法可以只在一个适用于所有页面的地方完成。
【问题讨论】:
创建一个继承自 Web.UI.Page 的类。在该类中,为 Page_Load 创建一个事件并放置检查会话的代码。然后在您希望通过登录保护的所有页面上,让它们继承您创建的类。
【讨论】:
最好的方法是定义一个抽象页面(比如 SessionedPageBase)并让所有其他页面都继承自它。
您可以在各个页面 Page_Load 中调用基本 Page_Load 的第一件事,或者更好地 - 创建一个事件(如其他答案中所建议的那样)。
【讨论】:
正如@rkw 的评论中所建议的那样,我认为您最好为此使用表单身份验证而不是您自己的自定义机制。
如果您使用表单身份验证,则可以使用 web.config 中的条目指定哪些页面受到保护。
有关 Forms 身份验证的详细介绍,请参阅http://www.4guysfromrolla.com/webtech/110701-1.shtml
【讨论】: