当前位置: 移动技术网 > IT编程>开发语言>c# > 登录验证全局控制的几种方式总结(session)

登录验证全局控制的几种方式总结(session)

2019年07月18日  | 移动技术网IT编程  | 我要评论

一,在一个公共类里创建一个公共方法,然后需要验证的页面都调用这个方法
 //在此例子中,就是在入口函数里调用checklogin()方法;

复制代码 代码如下:

  public static string seuserid
        {
            get
            {
                return httpcontext.current.session["seuserid"].tostring();
            }
            set
            {
                httpcontext.current.session["seuserid"] = value;
            }
        }
        /// <summary>
        /// 检查用户是否登录,如果未登录就转到登录页面
        /// </summary>
        public static void checklogin()
        {
            if (seuserid == "" || seuserid == "0")
            {
                httpcontext.current.response.redirect("foreignfirms.aspx");
                //httpcontext.current.response.write("<script>window.open('');alert('登陆失效,请重新登陆');</script>");
            }
        }

复制代码 代码如下:

//在cs页面调用验证方法
    protected void page_load(object sender, eventargs e)
    {
        commom.commonfunction.checklogin();//验证登陆信息
        if (!ispostback)
        {
            getdata();
            value = request.querystring["id"].tostring();
            if (value != "0")
            {
                getedit();
            }
        }
    }

二,通过global文件来控制
复制代码 代码如下:

protected void session_start(object sender, eventargs e)
  {
      session["sqlconnectionstring"] = "uid=username;pwd=password;database=mytest;server=localhost;connect timeout=300";
  }   

--读取的方法,在代码中的应用
复制代码 代码如下:

string strconnection=session["sqlconnectionstring"].tostring();
  sqlconnection_1=new sqlconnection(strconnection);

三,通过web.config文件配置

//配置web.config文件的方法如下:
在web.config文件的<system.web></system.web>节点中添加如下代码,设置session的生命周期为10分钟。

复制代码 代码如下:

<sessionstate mode="inproc" timeout="10"></sessionstate>

在web.config文件中设置session时,可以设置以下几个参数:
复制代码 代码如下:

 mode//该参数用于设置存储会话状态。状态包括off、inproc、stateserver和sqlserver。
off//表示禁用会话状态
inproc//表示工作进程自身存储会话状态
stateserver//表示将把会话信息存放在一个单独的asp.net状态服务中
sqlserve//r表示将把会话信息存放在sql server数据库中。
stateconnecitonstring//该参数用于设置asp.net应用程序存储远程会话状态的服务器名,默认名为本地。
cookieless//当该参数值设置为true时,表示不使用cookie//会话标识客,反之设置为false时,标识启动cookie会话状态。
sqlconnectionstring//该参数用于设置sql server数据库连接。
timeout//该参数用于设置会话时间,超过该期限,会自动中断会话,默认设置为20。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网