.net配置authentication实现全局验证
2015-08-05 22:12
323 查看
公司有个.net语言开发的系统,没天理的竟然没有做全局验证,导致公司通讯录的组织架构暴露在外面。
没办法,n年前的前辈们留下的坑,只好踩上了。
部门专家级高手提出方案:给系统增加单点登录逻辑,让每一个请求都到登录逻辑验证。具体的做法是:1、用户登录时,记录他的登录状态;2、其它的请求,若用户已登录,则顺利请求;若未登录,则请求失败。
代码有两部分。
1、在web.config配置文件增加author配置:
<authentication mode="Forms" >
<forms name="casauth" loginUrl="login.aspx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
这个模块是在System.web里面,可能这里配置了之后,在全局配置里面还要修改授权方式为Forms。
2、在登录逻辑里面:
Session["UserName"] = userName;
FormsAuthentication.RedirectFromLoginPage(userName, false);第一条语句表示把某个信息放进缓存,好让登录后的请求有所依靠。第二条语句应该是重定向到真正的请求去。
上述做法是根据特定业务逻辑下所做的,已经能够实现对全部请求进行拦截验证,但它并不是真正的单点登录,只是借鉴了下单点登录的做法。在.net下配置cas单点登录,可访问http://lib.iteye.com/blog/166619进行查看,该博主写的很不错,我就是参照他的帖子来做的。
没办法,n年前的前辈们留下的坑,只好踩上了。
部门专家级高手提出方案:给系统增加单点登录逻辑,让每一个请求都到登录逻辑验证。具体的做法是:1、用户登录时,记录他的登录状态;2、其它的请求,若用户已登录,则顺利请求;若未登录,则请求失败。
代码有两部分。
1、在web.config配置文件增加author配置:
<authentication mode="Forms" >
<forms name="casauth" loginUrl="login.aspx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
这个模块是在System.web里面,可能这里配置了之后,在全局配置里面还要修改授权方式为Forms。
2、在登录逻辑里面:
Session["UserName"] = userName;
FormsAuthentication.RedirectFromLoginPage(userName, false);第一条语句表示把某个信息放进缓存,好让登录后的请求有所依靠。第二条语句应该是重定向到真正的请求去。
上述做法是根据特定业务逻辑下所做的,已经能够实现对全部请求进行拦截验证,但它并不是真正的单点登录,只是借鉴了下单点登录的做法。在.net下配置cas单点登录,可访问http://lib.iteye.com/blog/166619进行查看,该博主写的很不错,我就是参照他的帖子来做的。
相关文章推荐
- C#.NET获取拨号连接的宽带连接方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- .net(c#)中的new关键字详细介绍
- 由vbs sort引发.NET Framework之间的关系说明
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- .NET中的async和await关键字使用及Task异步调用实例
- .Net中的json操作类用法分析
- .net实现序列化与反序列化实例解析
- .NET中的Timer类型用法详解
- 关于.net(C#)中的跨进程访问的问题
- .NET实现父窗体关闭而不影响子窗体的方法
- 基于.Net中的数字与日期格式化规则助记词的使用详解
- .NET微信公众号开发之公众号消息处理
- .Net下的签名与混淆图文分析
- .NET 扩展实现代码
- .net实现文件读写的几种常用方法
- .net文件上传时实现通过文件头确认文件类型的方法
- 四个常用的.NET的SQLHELPER方法实例
- .net中前台javascript与后台c#函数相互调用问题
- Windows窗体的.Net框架绘图技术实现方法