global.asax中的会话管理(自定义会话检查) [英] Session management in global.asax (custom session check)
问题描述
我需要通过global.asax文件管理会话,因为我不想为每个页面编写会话检查方法,我希望默认情况下所有请求都应该从global.asax验证。我需要在session_start中检查我的自定义会话以查看有效用户。我正在使用outproc(状态服务器)来存储会话。
我尝试了代码但是在检查会话后它会检查会话以便下次加载,我在下面场景。
1)打开任何URL(如果会话失败,它应该重定向到登录页面)
2)登陆登录页面后我更改地址栏中的URL,这次代码没有来session_start来检查有效会话。
我尝试过:
I need to manage session through global.asax file because I dont want to write a session check method for every page, I want all the request by default should be validated from global.asax. I need to check my custom session in session_start to see valid user. I am using outproc (state server) for storing session.
I tried the code but after checking the session it doent check the session for the next load, I have below scenario.
1) Open any URL (If session fails it should redirect to login page)
2) After landing on Login page I change the URL in address bar and for this time code doesnt come to session_start to check valid session.
What I have tried:
protected void Session_Start(object sender, EventArgs e)
{
try
{
if (HttpContext.Current.Session["clientinfo]!=null))
{
}
else
{
//FormsAuthentication.SignOut();
//HttpContext.Current.Session.Abandon();
Response.Redirect("some page");
}
}
catch
{
}
}
推荐答案
您好,
为什么不使用过滤器来执行此操作?
检查以下网址。
查看会话通过在MVC中使用ActionFilters超时 [ ^ ]
创建一个常用的方法来检查会话获取呼叫你需要的地方
Create a common method for check session get call where you required
/// <summary>
/// Method to check sesssion.
/// </summary>
/// <param name="sessionName"></param>
/// <returns></returns>
public static bool CheckSession(string sessionName)
{
if(!string.IsNullOrEmpty((string)HttpContext.Current.Session[sessionName]))
{
return true;
}
else
{
return false;
}
}
这篇关于global.asax中的会话管理(自定义会话检查)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!