我有一个应用程序,用户必须先登录才能访问页面。现在,一旦用户登录,我将用户详细信息保存在会话变量中(例如Session [“CurrentUser”])。
现在,如果用户试图直接跳转到某个页面,我会检查Session [“CurrentUser”]是否有值...如果没有,那么用户将被定向到登录页面......
我的问题是我已经这样做了,或者说几乎在所有页面上都写了“检查代码”。
我想要的是这个代码留在特定的位置,我将只在所有页面上访问该方法...现在我应该在哪里写这个方法??
谢谢。答案 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吗?