asp.net项目与开源单点登录项目CAS的结合

这段时间搞的一个asp.net mvc项目,采用了单点登录。

这个单点登录就是CAS,一个开源的JAVA项目。当然,这并不影响ASP.NET项目结合它来进行登录。因为各自分工不同:单点登录(管它是不是单点)只负责账户校验,而账户的登录信息读取,以及做何种进一步的处理,那是应用项目自己的事。

就好比,单点登录是写字楼的安保。他在核实来访者的来访目的,进行来访者身份登记,通过安检之后,就放来访者进这个大厦了。至于位于写字楼里的某家公司(应用项目)要如何接待这个来访者,那是这家公司的事情。

总结如下:

1、采用 单点登录 + asp.net form认证
单点登录网站负责校验;本项目负责存储登录认证信息。asp.net form认证为系统自带

2、访问本项目时,form认证首先检查是否已认证(asp.net form认证本身机制),否的话跳到单点登录;是的话,由本项目进一步校验。

3、本项目校验,如果发现缓存的登录信息丢失,则根据form认证记录的登录信息(简单),重新检索登录信息(详细)并缓存

4、无论单点登录、form认证还是本地缓存,都依赖cookie。

5、form认证主要在web.config里配置,代码里也有应用。

6、本项目触发登录信息校验的事件,在控制器的基类:AdminControllerBase.OnActionExecuting

这里写图片描述

web.config:

    <!--Form认证设置Start-->
    <authentication mode="Forms">
      <forms name=".ASPWeb" loginUrl="http://192.168.0.22:8080/cas/login" 
             timeout="2880" defaultUrl="~/Home/Index" 
    cookieless="UseCookies" slidingExpiration="true" enableCrossAppRedirects="true" path="/" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>

AdminControllerBase.OnActionExecuting:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
...

        if (this.LoginInfo == null)
        {
            LoginHelper.Instance.Login();
            return;
        }
...
}

LoginHelper.cs

public void Login()
{
    if (HttpContext.Current != null)
    {
        //是否已经form验证?
        string username = HttpContext.Current.User.Identity.IsAuthenticated ? HttpContext.Current.User.Identity.Name : "";

        if (!string.IsNullOrEmpty(username))
        {//如果当前用户已登录单点登录系统
            var loginInfo = 。。。
            if (loginInfo != null)
            {
                //缓存loginInfo...                    
            }
        }
        else
        {
            Logout();
        }
    }
}

相关文章
asp.net forms认证

转载于:https://www.cnblogs.com/leftfist/p/6808707.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值