.NET单点登录之过滤器(filter)--【SSO】

在.NET单点登录的探索中,用到一个知识点:过滤器(filter)。常见的几种验证:Authorization filters,验证用户是否有权限访问页面;Action Filter,验证用户登录的时候是否用户信息存在;异常处理,比如session过期后可以返回登录页面等等。

一、Filter包含什么?

filter主要分为四种,遍布于MVC,从页面请求到授权,到访问资源的各个阶段。

Authorization filters:用于处理验证处理相关的操作

Action filters:在Controller中Action处理的开始和结束做拦截操作

Result filters:在View呈现前和呈现后做处理

Exception filters:只要是添加了Exception Filter的请求中出现异常,都会被拦截。

下面是filter在MVC中的作用顺序:

二、Filter的小demo

子系统登录权限前,需要经过filter过滤,看是否能查到本地的cookie值进行验证。如下是filter中代码:

  public class MemberValidationAttribute:AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            //读取用户登录权限和信息
            var memberValidation = filterContext.HttpContext.Request.Cookies.Get("selfUserInfo");
            //如果为空,就跳转到登录页;如果不为空,就返回一开始请求的页面
            if (memberValidation == null)
            {
                filterContext.Result=new RedirectToRouteResult(new RouteValueDictionary
                    (new {controller="Account",aciton="LogOn"
                    }));
                return;
            }
            return;

        }

    }

子系统只需要在ActionResult上面打一个[MemberValidation]即可在登录的时候访问filter。

        [MemberValidation]

        public ActionResult ChangePassword()
        {
            return View();
        }

三、感受

一个知识只有给别人讲出来,而且讲懂了,才是真正的学会了。不要把所有的事情想的那么难,去做就好了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 18:38:51

.NET单点登录之过滤器(filter)--【SSO】的相关文章

CAS单点登录之抽丝剥茧——【SSO】

一.CAS是什么 CAS=Central Authentication Service,中央认证服务,一种独立开始指令协议.CAS是 Yale大学发起的一个开源项目,旨在为web应用系统提供一种可靠的单点登录方法. 二.CAS包括什么 CAS包括两个部分:CAS Client和CAS Server. CAS Client:负责处理对客户端受保护资源的访问请求 CAS Server:需要独立部署,主要负责对用户的认证工作. CAS包含TGT.ST.PGT.PGTIOU.PT五种票据信息,在ITOO

CAS单点登录(SSO)完整教程

转:http://blog.csdn.net/frinder/article/details/7969925 CAS单点登录(SSO)完整教程(2012-02-01更新) 一.教程说明 前言 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 单点登录(SSO):请看百科解释猛击这里打开 本教程使用的SSO服务器是Yelu大学研发的CAS(Central Authentication Server), 官网:http://www.jasig.org/cas 本教程环境: Tomcat

JAVA CAS单点登录(SSO) 教程

一.教程前言 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 单点登录(SSO):请看百科解释猛击这里打开 本教程使用的SSO服务器是Yelu大学研发的CAS(Central Authentication Server),官网:http://www.jasig.org/cas 本教程环境: Tomcat6.0.29 JDK6 CAS Server版本:cas-server-3.4.3.1 CAS Client版本:cas-client-3.1.12 教程撰写日期:2010-11-

深入浅出单点登录(SSO)

1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,也是相当普遍的一种身份验证设计,网络上对应不同场景的SSO解决方案比比皆是,从简单到复杂.安全等级的步步攀升,可谓百花争艳!如:开源的有OpenSSO.CAS ,微软的AD SSO,及基于kerberos 的SSO等等……以上列举的都是些比较成熟的产品或解决方案,安全方面一个胜过一个,尽显开发及使用者的逼格,当然需求所致无谓好坏高低,满足实际之需才是王道! 对于这些SSO方案,各

SSO(单点登录)

自己动手写SSO(单点登录) 标签: sso 登录 | 发表时间:2014-03-02 15:01 | 作者: 分享到: 出处:http://www.iteye.com SSO在我们的应用中非常常见,例如我们在OA系统登录了,我们就可以直接进入采购系统,不需要再登录了,这样使我们非常方便.现在网上也有很多实现方法,于是乎我也想写一个看看.我主要用到的是cookie的机制.在此,分享给大家, 同时提供源代码下载. 进入主题: 工程说明 SSO的实现一般是会有一个SSO Server,也会叫认证中心

单点登录SSO:可一键运行的完整代码

h1.title,h2.title { padding-left: 2rem !important; color: rgb(71, 91, 204) !important } h1.title { font-size: 22px !important } h2.title { font-size: 18px !important } .padding { padding: 0 2rem; padding-bottom: 1rem } blockquote.menu { padding-left:

【Java】单点登录(SSO)

单点登录介绍 ? SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制.它是目前比较流行的企业业务整合的解决方案之一. 实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录:根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--token:用户再访问别的应用的时候就会将这个to

单点登录原理及简单实现

一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求:要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求:要鉴别浏览器请求,必须清楚浏览器请求状态.既然http协议无状态,那就让

[转]单点登录原理与简单实现

一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求:要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求:要鉴别浏览器请求,必须清楚浏览器请求状态.既然http协议无状态,那就让