c# - 在每一页检查 session ?

标签 c# .net

我是 .NET 的新手 - 我正在制作一个具有管理部分的网站,该部分应该只对登录用户可见。 我已经创建了登录代码,一旦用户通过身份验证,我就会为他们分配一个 session 变量。 我的问题是:是否有更有效的方法来检查 session 变量而不是在每个页面上使用以下函数?

protected void Page_Load(object sender, EventArgs e)
{
      checkSession();

 }
public void checkSession()
{
    if (Session["LoggedIn"] != "true")
    {
        Response.Redirect("default.aspx");
    }
}

谢谢!

最佳答案

如果您使用的是 MasterPage,如果不使用 Global.asax 或自定义 HttpModule 并将检查代码放入第一个的 AcquireRequestState 事件处理程序和第二个的 PostRequestHandlerExecute 事件处理程序

使用 Global.asax 的示例

public class Global : System.Web.HttpApplication
{ ...
    void Application_AcquireRequestState(object sender, EventArgs e)
    {            
        HttpContext context = HttpContext.Current;
        // CheckSession() inlined
        if (context.Session["LoggedIn"] != "true")
        {
          context.Response.Redirect("default.aspx");
        }
    }
  ...
}

关于c# - 在每一页检查 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15662543/

相关文章:

c# - 更改控制台窗口的大小会引发 ArgumentOutOfRangeException

c# - 使所有 datagridview 列可排序

c# - 带有下拉列表和 SelectListItem 辅助的 Asp.Net MVC

c# - AWS API 网关签名

.net - 如何从 VBScript 调用 Windows 服务的方法?

c# - 更新条目时出错。有关详细信息,请参阅内部异常。 - Linq 到实体

c# - Microsoft ASP.NET 和 Web 工具 2015 - DNX 和 DNVM

c# - CancellationTokenSource 需要建议

c# - Math.Floor 或 Math.Truncate 与 (int) 在正数性能方面

.net - .Net 中的舍入差异