asp.net - 是否应该在 ASP.Net 中的页面加载时检查 session ?

标签 asp.net session

Page Load,作为两个单词的句子,意思是当页面被加载时,意思是,当所有元素都被加载时。

假设我有一个名为 Ask.aspx 的页面,并且该页面仅允许已登录的用户访问,因此从技术上讲,我会编写如下内容:

if(Session["id"]==null)
    Response.Redirect("Login.aspx");

这意味着,我在页面加载后测试 session ,理论上,我认为这听起来不对,现在我当然不会注意到它,它会很快,我会尝试访问该页面,然后我被重定向到 Login.aspx,但是...在页面加载方法上测试 session 是否正确?

最佳答案

Page_Load是页面生命周期的一部分。它在服务器加载页面时调用,而不是在客户端加载页面时调用...

所以这是检查 session 变量的正确位置...

您实际上是在说:在我将页面发送回客户端之前,请检查我是否为此 session 设置了 ID 属性...如果没有 - 告诉客户端重定向到 Login.aspx 页面...

这是正确的做法...

我建议您还阅读 Server.Transfer 。它与 Response.Redirect 的区别在于,在 Server.Transfer 中,服务器本身“重定向”到另一个页面,并将新页面的结果输出回客户端(在客户不知情的情况下)。

关于asp.net - 是否应该在 ASP.Net 中的页面加载时检查 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14011436/

相关文章:

c# - 无状态可扩展 Web 应用程序中 SignalR (WebSockets) 连接的架构

c# - android 改造使用 asp.net web api [FromBody] 始终为 null

php - 将 PHP session 和 cookie 视为缓存选项是否不好?

php - Windows/Temp 目录中充满了阻塞服务器的 Php Session 文件

javascript - php node.js redis session 共享身份验证

java - 不同浏览器中的 session 管理

即使授予 "Everyone"访问权限,ASP.NET 应用程序也无法访问网络共享

c# - 如何在 Powerdesigner 中创建可以为不同数据库生成创建脚本的模型?

asp.net - Application_AuthenticateRequest 总是在 Session_Start 之前吗?

javascript - 使用 vb.net 从代码隐藏调用 Javascript 函数