使用最小代码更改将会话管理添加到ASPX页面

时间:2015-02-10 06:39:25

标签: c# asp.net web session-state

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

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

1 个答案:

答案 0 :(得分:0)

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

话虽这么说,您可能需要为您的Pages创建基类,通过这样做,您可以将身份验证限制为一个点/类。

但是,如果将它与ASP.NET框架提供的结合起来会更好。从您正在谈论的内容来看,您似乎正在使用ASP.NET Forms - 这篇文章应该为您提供有关您需要做的所有事情的精细概述:

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