本文实例讲述了asp.net简单实现单点登录(SSO)的方法。分享给大家供大家参考,具体如下:
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统
CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架(耶鲁大学开发)主要用于Java Php 有兴趣大家可以研究下..
下面是一个简单实现单点登录的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public
void
SingleUserLogin(
string
userName){
//定义键值
string
key=userName;
string
value=Convert.ToString(Cache[key]);
if
(value==
null
||value==
string
.Empty){
//定义Cache过期时间
TimeSpan span=
new
TimeSpan(0,0,HttpContext.Current.Session.Timeout,0,0);
//第一次登陆的时候插入一个用户相关的cache值,
HttpContext.Current.Cache.Insert(key,key,
null
,DateTime.MaxValue,span,System.Web.Caching.CacheItemPriority.NotRemovable,
null
);
Session[
"userName"
]=userName;
Response.Redirect(
"Main.aspx"
);
}
else
if
(Cache[key].ToString()==key){
//重复登陆
Response.Write(
"<mce:script type="
text/javascript"><!--
alert(
'您的账号已经登陆!'
);window.location=
'login.aspx'
;
// --></mce:script>");
}
else
{
//取消当前的session会话
Session.Abandon();
}
}
|
在Web Config 配置 窗体模式
1
2
3
4
5
6
7
|
<
authentication
mode
=
"Forms"
>//mode值是Forms为定义成窗体验证
<
forms
loginUrl
=
"Mananger/Login.aspx"
name
=
".ASPXAUTH"
>//用户未登陆就先访问Mananger/Login.aspx页面
</
forms
>
</
authentication
>
<
authorization
>
<
deny
users
=
"?"
/>
</
authorization
>
|