代码

using Common;
using Service;
using Service.IService;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Mvc; namespace WebPage.Controllers
{
public class BaseController : Controller
{
//public log4net.Ext.IExtLog log = log4net.Ext.ExtLogManager.GetLogger("dblog"); #region 公用变量
/// <summary>
/// 查询关键词
/// </summary>
public string keywords { get; set; }
/// <summary>
/// 视图传递的分页页码
/// </summary>
public int page { get; set; }
/// <summary>
/// 视图传递的分页条数
/// </summary>
public int pagesize { get; set; }
/// <summary>
/// 用户容器,公用
/// </summary>
public IUserInfoManage UserInfoManage = Spring.Context.Support.ContextRegistry.GetContext().GetObject("Service.UserInfoManage") as IUserInfoManage;
#endregion #region 用户对象
/// <summary>
/// 获取当前用户对象
/// </summary>
public Account CurrentUser
{
get
{
//从Session中获取用户对象
if (SessionHelper.GetSession("CurrentUser") != null)
{
return SessionHelper.GetSession("CurrentUser") as Account;
}
//Session过期 通过Cookies中的信息 重新获取用户对象 并存储于Session中
var account = UserInfoManage.GetAccountByCookie();
SessionHelper.SetSession("CurrentUser", account);
return account;
}
}
#endregion #region 登录验证 OnActionExecuting
/// <summary>
/// 重写控制器 OnActionExecuting(ActionExecutingContext filterContext)方法 实现登录验证和公共变量的获取
/// </summary>
/// <param name="filterContext"></param>
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
#region 登录用户验证
//1、判断Session对象是否存在
if (filterContext.HttpContext.Session == null)
{
filterContext.HttpContext.Response.Write("<script type='text/javascript'> alert('~登录已过期,请重新登录');window.top.location='/'; </script>");
filterContext.RequestContext.HttpContext.Response.End();
filterContext.Result = new EmptyResult();
return;
}
//2、登录验证
if (this.CurrentUser == null)
{
filterContext.HttpContext.Response.Write("<script type='text/javascript'> alert('登录已过期,请重新登录'); window.top.location='/';</script>");
filterContext.RequestContext.HttpContext.Response.End();
filterContext.Result = new EmptyResult();
return;
}
#endregion #region 公共Get变量
//分页页码
object p = filterContext.HttpContext.Request["page"];
if (p == null || p.ToString() == "") { page = ; } else { page = int.Parse(p.ToString()); } //搜索关键词
string search = filterContext.HttpContext.Request.QueryString["Search"];
if (!string.IsNullOrEmpty(search)) { keywords = search; }
//显示分页条数
string size = filterContext.HttpContext.Request.QueryString["example_length"];
if (!string.IsNullOrEmpty(size) && System.Text.RegularExpressions.Regex.IsMatch(size.ToString(), @"^\d+$"))
{
pagesize = int.Parse(size.ToString());
}
else
{
pagesize = ;
}
#endregion
}
#endregion //public void WriteLog(string Operator,string Msg, Common.Enums.enumLog4net level)
//{
// log.Error(Utils.GetIP(), this.CurrentUser.LogName, HttpContext.Request.Url.ToString(), "Module/Detail", Msg);
//}
}
}

OnActionExecuting验证用户登录的更多相关文章

  1. .net MVC使用Session验证用户登录(转载)

    .net MVC使用Session验证用户登录   用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问 ...

  2. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  3. MVC4项目中验证用户登录一个特性就搞定

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...

  4. MVC4验证用户登录特性实现方法

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...

  5. 单点登录CAS使用记(三):实现自定义验证用户登录

    问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验 ...

  6. 转:C4项目中验证用户登录一个特性就搞定

    转:C4项目中验证用户登录一个特性就搞定   在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性.     // 摘要:    //     表示一个特性,该特性用于限制调用 ...

  7. How to use the windows active directory to authenticate user via logon form 如何自定义权限系统,使用 active directory验证用户登录

    https://www.devexpress.com/Support/Center/Question/Details/Q345615/how-to-use-the-windows-active-dir ...

  8. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享

    首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段   本实例采用vs2010编写 ...

  9. 【转】MVC4验证用户登录特性实现方法

    在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...

随机推荐

  1. 在postgresqlz中查看与删除索引

    查看索引 select * from pg_indexes where tablename='tbname';      或者     select * from pg_statio_all_inde ...

  2. bat脚本基础教程

    bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上.本文主要介绍bat脚本基础语法,希望完成本文内容学习之后具备基础的bat脚本开发能 ...

  3. JavaScript中的setInterval用法

    setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象.可以使用本动作更新来自数据库的变量或更新时间显示.setInterval动作的语法格式如下:setInterval ...

  4. 18.struts-执行流程.md

    目录 1.流程 2.bean节点 3.package节点 result-type 拦截器 概念 拦截器和过滤器的异同: 问题:拦截器什么时候执行,action类和拦截器的执行顺序 4.常见问题 1.流 ...

  5. CSS强制换行和禁止换行代码

    一.强制换行      1.word-break: break-all;       只对英文起作用,以字母作为换行依据.      2.word-wrap: break-word;   只对英文起作 ...

  6. 百度开放平台连接MySQL数据库

    在百度开放平台创建了MySQL数据库后只知道数据库名称,可以通过下面的方法进行连接: public function connect(){ $_server = getenv('HTTP_BAE_EN ...

  7. 实例的render方法渲染组件

    1.普通渲染组件 在app容器中插入login组件 <login></login>  一个app可以多个这种组件 <script> var login = { te ...

  8. input 文本框,对中文长度校验

    在项目中,经常会遇到,对文本框进行校验. eg.  要求姓名长度为20,中文为10,只能输入中英文. <input   maxlength="20" type="t ...

  9. 开启Centos系统的SSH服务

    1.登录Centos6.4系统. ◆示例:使用root用户登录. 注:若为非root用户登录,输入执行某些命权限不够时需加sudo. 查看SSH是否安装. 2.◆输入命令:rpm -qa | grep ...

  10. mongodb 副本集部署

    1.安装三节点linux环境:196.168.1.111,196.168.1.112,192.168.1.113(三节点可彼此ping通) 2.三节点安装mongodb,参考https://blog. ...