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

网友投稿 334 2022-11-04


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:

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

相关文章 ​​​asp.net forms认证​​


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:框架设计之ADO.NET Command的ExecuteScalar误用情景及底层解说
下一篇:顺丰物流查询API(顺丰物流 查询)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~