在登陆验证或者其他需要用到session全局变量的时候,归结起来,主要有以下三种较方便的实现方式。(其中个人较喜欢使用第一种实现方法)

一,在一个公共类里创建一个公共方法,然后需要验证的页面都调用这个方法

//在此例子中,就是在入口函数里调用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。

登录验证全局控制的几种方式(session)的更多相关文章

  1. MVC验证10-到底用哪种方式实现客户端服务端双重异步验证

    原文:MVC验证10-到底用哪种方式实现客户端服务端双重异步验证 本篇将通过一个案例来体验使用MVC的Ajax.BeginForm或jQuery来实现异步提交,并在客户端和服务端双双获得验证.希望能梳 ...

  2. 开发vue全局插件的4种方式

    定义全局插件的步骤 定义全局插件 pluginsUtil.js Vue.js 的插件应当有一个公开方法 install .这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象: ex ...

  3. Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1.覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected ...

  4. Spring全局异常处理的三种方式

    在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合度高,工作 ...

  5. Asp.net中全局缓存的几种方式

    public class StaticCacheTest { private static IDictionary<string, object> _dic; private static ...

  6. 总结Ajax验证注册功能的两种方式

    方法一:使用jqueryForm插件提交表单注册 ①首先引入jquery和jqueryForm插件 <script type="text/javascript" src=&q ...

  7. springMVC --全局异常处理(两种方式)

    首先看springMVC的配置文件: <!-- 全局异常配置 start --> <bean id="exceptionResolver" class=" ...

  8. 登录进入Mysql数据库的几种方式

    前提:连接进入mysql数据库 本机安装的myslq基础信息: host= "localhost", # 数据库主机地址:127.0.0.1 port=3306, # 端口号 us ...

  9. CBV装饰校验的三种方式session

    代码如下: from django.shortcuts import render,HttpResponse,redirect from django.views import View # Crea ...

随机推荐

  1. Bootstrap transition.js 插件

    Bootstrap transition.js 插件详解   Bootstrap 自带的 JavaScript 插件的动画效果几乎都是使用 CSS 过渡实现的,而其中的 transition.js 就 ...

  2. loadrunner常用函数总结

    事务函数:lr_end_sub_transaction 标记子事务的结束以便进行性能分析lr_end_transaction 标记 LoadRunner 事务的结束lr_end_transaction ...

  3. linux内核的冒险md来源释义# 14raid5非条块读

    linux内核的冒险md来源释义# 14raid5非条块读 转载请注明出处:http://blog.csdn.net/liumangxiong 假设是非条块内读.那么就至少涉及到两个条块的读,这就须要 ...

  4. 思维方式--SMART原则

    假设你的项目管理.系统架构的兴趣,请加微信订阅号"softjg",收藏此PM.建筑师的家 万事开头于你目标的设定,假设開始走错了,那么后面的路将会更加的错误.甚至于更加的努力犯错就 ...

  5. 提高C#编程水平的50个要点 你掌握了多少呢?

    提高C#编程水平的50个要点,程序员都是追求极致的完美主义者,下面的这些注意点和要点,你都掌握运用了多少呢? 总是用属性(Property)来代替可访问的数据成员 在 readonly 和 const ...

  6. Ubuntu12.10无法安装openssh-server[已解决]

    因为要在Ubuntu下搞些东西,家里的台式有Deepin2013,但是发现有很多依赖的问题,实在不想解决,就到win7下用VBox安装了Ubuntu.打算使用SourceCRT连接虚拟机,但是在安装在 ...

  7. js 实现复制粘贴文本过滤(保留文字和图片)

    实现复制粘贴文本过滤(保留文字和图片) demo如下: <head> <meta http-equiv="Content-Type" content=" ...

  8. sql内置函数pivot强大的行转列功能

    原文:sql内置函数pivot强大的行转列功能 语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...

  9. Linux系统编程:dup2()重定向

    对于Dup2 的理解: 源代码: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #inclu ...

  10. c#拷贝

    话谈c#拷贝 c#中类型分为值类型和引用类型,值类型对象赋值是本身就是赋的自身的一个副本,而引用类型赋值时则赋的是指向堆上的内存,假如我们不想赋这个地址而想将对象赋过去要怎么做呢?首先要知道拷贝分为浅 ...