在页面加载时检查用户身份验证

时间:2010-05-18 10:14:02

标签: c# asp.net authentication

我有一个应用程序,用户必须先登录才能访问页面。现在,一旦用户登录,我将用户详细信息保存在会话变量中(例如Session [“CurrentUser”])。

现在,如果用户试图直接跳转到某个页面,我会检查Session [“CurrentUser”]是否有值...如果没有,那么用户将被定向到登录页面......

我的问题是我已经这样做了,或者说几乎在所有页面上都写了“检查代码”。

我想要的是这个代码留在特定的位置,我将只在所有页面上访问该方法...现在我应该在哪里写这个方法??

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以创建一个继承自System.Web.UI.Page的类,然后让所有单独的页面类继承自该类。您是否看过内置的ASP.net表单身份验证技术?

答案 1 :(得分:1)

你应该看看ASP.NET Authentication。这将允许您通过web.config文件保护您网站的一部分或单个页面,并使用cookie来处理身份验证,而不是检查会话变量。

答案 2 :(得分:0)

你可以把它放在一个扩展Page的基类中,然后让你的所有页面代码都延伸到这个。

更好的解决方案是使用

Application_AuthenticateRequest

Global.asax中的伪事件。你真的不应该使用会话吗,你看过Forms Authentication吗?