将会话管理添加到具有最小代码更改的ASPX页面



我有一个ASP.NET应用程序,它有许多aspx页面。这些页面没有任何登录或会话管理功能,任何用户都可以直接键入url并访问任何页面。现在我想将状态管理功能添加到所有页面中。我创建了一个新的注册和一个基本的登录页面,该页面接受用户名和密码,并具有必要的数据库。使用任何服务器或客户端状态管理功能都可以,但我如何在代码更改最少的情况下实现它。

这里的一个直接解决方案是在服务器端实现会话变量,以存储登录的用户详细信息,并在每个页面的Page_Load事件处理程序中检查它。但在这里,代码更改必须在所有页面中进行,我不希望这样,因为页面太多了。任何更简单的方法都会有所帮助。有什么想法吗??

首先,您没有在每个页面的Page_Load中实现身份验证,这很好。每当您想到的方法需要在多个地方复制粘贴代码时,您就做错了。

话虽如此,您可能需要为页面创建基类,通过这样做,您可以将身份验证限制在一个位置/类。

不过,如果您将其与ASP.NET框架提供的功能结合起来会更好。从你谈论的内容来看,你似乎在使用ASP.NET Forms——这篇文章应该为你提供关于你需要做的一切的详细概述:

  1. 如何修改web.config以使用Forms身份验证
  2. 登录和注销用户(创建身份验证cookie)
  3. 用于验证需要添加到Global.asx的请求的必要代码
  4. 通过在web.config中输入适当的值来限制对页面的访问(尽管更好的方法是使用我提到的基类)

基于角色的表单身份验证安全

最新更新