global.asax中的会话管理(自定义会话检查) [英] Session management in global.asax (custom session check)

查看:71
本文介绍了global.asax中的会话管理(自定义会话检查)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要通过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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆