在页面加载页面之前检查会话变量并重定向到登录页面?我知道生命周期,PageInit()听起来像是正确的做法,但我似乎无法在VisualStudio中找到不正确且错误的代码。我不能将onpageinit=""放在页面声明的第一行。我想把它放在不同的地方吗?我的页面是这样声明的:这是我想在页面加载时运行的代码://检查用户是否登录,如果没有将他们发送到登录页面if(session.logged_in==false){//重定向用户到登录页面Response.Redirect("login.aspx");您必须覆盖页面的OnInit方法。将它放在Page_Load事件的代码中(顺序无关紧要,但我相信组织很重要)...//yourcodegoeshere}此外,根据您要完成的工作,我建议查看FormsAuthentication。有了它,您可以简单地指定一个安全文件夹和登录页面,如果未通过身份验证,.NET会将访问者踢到登录页面。我建议您花时间阅读有关Asp.Net成员资格的信息。然后,如果您需要,实现您自己的MembershipProvider,它将处理必要的管道以验证用户请求。成员抽象非常有用,实现您自己的提供者并不难。也就是说,如果您真的想使用Session中的值来管理身份验证,您可以尝试将代码放在Global.asax的Application_PostAcquireRequestState方法中。这样,您的代码将自动调用(几乎)对您的应用程序的所有请求,并且它也是会话可用的第一个事件(据我所知)。示例:voidApplication_PostAcquireRequestState(objectsender,EventArgse){if(Session["LoggedUserName"]==null&&!Request.Path.EndsWith("login.aspx")){Response.Redirect("~/your/path/登录.aspx");我不知道onpageinit属性。会话变量独立于页面生命周期。会话始终可用。假设您始终使用相同的母版页,将代码插入母版页代码隐藏的Pre_Init中。为此,将重写添加到后面的代码:以上是C#学习教程:检查会话变量并在页面加载之前重定向到登录页面如果它对每个人都有用,我正在分享我希望更多地了解C#我希望您将更加关注教程—protectedoverridevoidOnPreInit(EventArgse){if(session.logged_in==false){Response.Redirect("login.aspx",false);}}本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: