OnActionExecuting验证用户登录
代码
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验证用户登录的更多相关文章
- .net MVC使用Session验证用户登录(转载)
.net MVC使用Session验证用户登录 用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问 ...
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
easyui datagrid 禁止选中行 没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...
- MVC4项目中验证用户登录一个特性就搞定
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- MVC4验证用户登录特性实现方法
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- 单点登录CAS使用记(三):实现自定义验证用户登录
问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验 ...
- 转:C4项目中验证用户登录一个特性就搞定
转:C4项目中验证用户登录一个特性就搞定 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用 ...
- 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 ...
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享
首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段 本实例采用vs2010编写 ...
- 【转】MVC4验证用户登录特性实现方法
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
随机推荐
- 转: jquery.qrcode.js生成二维码插件&转成图片格式
原文地址: https://blog.csdn.net/u011127019/article/details/51226104 1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持can ...
- [PHP]对Json字符串解码返回NULL的一般解决方案
---------------------------------------------------------------------------------------------------- ...
- jQuery垂直二级导航菜单代码
http://www.sucaihuo.com/js/395.html 分享一个简单的垂直二级菜单导航. HTML <div id="my_menu" class=&qu ...
- docker run option
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container Options: --add ...
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources 在我的myeclipse中新建maven工程总出现这个问题
只需在下图中更改代码 更改后是这样的: <plugin> <groupId>org.apache.maven.plugins</groupId> <artif ...
- 开启Centos系统的SSH服务
1.登录Centos6.4系统. ◆示例:使用root用户登录. 注:若为非root用户登录,输入执行某些命权限不够时需加sudo. 查看SSH是否安装. 2.◆输入命令:rpm -qa | grep ...
- Python __init__ 特殊方法
在Python中有很多以双下划线开头且以双下划线结尾的固定方法.他们会在特定的时机被触发执行. __init__ 就是其中之一,它会在实例化之后自动被调用.以完成实例的初始化. >>> ...
- 下载安装windows版Redis
链接 https://github.com/MicrosoftArchive/redis/releases 选择版本下载 在redis目录打开cmd命令输入 redis-server.ex ...
- JMeter学习(八)JDBC测试计划-连接Oracle(转载)
转载自 http://www.cnblogs.com/yangxia-test 一.测试环境准备 Oracle:10g JDBC驱动:classes12.jar oracle安装目录下(orac ...
- sqlserver 数据库迁移
参考 https://blog.csdn.net/wuzhanwen/article/details/77449229 一.连接本地数据库引擎 新建一个数据库,如:rbrbsoft 二.连接远程数据库 ...