当前位置: 代码迷 >> ASP.NET >> 在ASP.NET中怎么实现单点登录
  详细解决方案

在ASP.NET中怎么实现单点登录

热度:750   发布时间:2013-02-25 00:00:00.0
在ASP.NET中如何实现单点登录
在ASP.NET中如何实现单点登录!!!!在线等..

------解决方案--------------------------------------------------------
http://www.asjob.com/sb/2008-6-24/37507http://www.cnblogs.com/luck0235/articles/1508181
------解决方案--------------------------------------------------------
你看看对你有帮助吗?http://www.cnblogs.com/luck0235/articles/1508181
------解决方案--------------------------------------------------------
用户表里加个在线标识,登录了就改变,并记录IP,这样在别的IP登录,并且登录标识为已登录就进行相应处理。 如何记录退出是有点问题的,只能说很难非常精确。
------解决方案--------------------------------------------------------
http://www.cnblogs.com/luck0235/articles/1508181
------解决方案--------------------------------------------------------
http://dev.csdn.net/article/61403.shtm
------解决方案--------------------------------------------------------
http://www.haoxiai.net/wangzhanzhizuo/aspnet/54298
http://www.mscto.com/dotnet/2009011561524
------解决方案--------------------------------------------------------

 帮顶!学习!!!!!!!!
------解决方案--------------------------------------------------------
<script>
//发送单点登录请求
function SsoLogin(Url, Args, callBack)
{
var element;
var head = document.getElementsByTagName("head")[0];
element = document.createElement("script");
element.src = Url + "?" + Args + "&" + Math.random();
element.type = "text/javascript";
element.id = 'sso';
head.appendChild(element);
if (callBack != undefined)
{
if (document.all)
{
element.onreadystatechange = function()
{
if (element.readyState == "loaded" || element.readyState == "complete")
{
eval(callBack);
return;
}
}
}
else
{
element.onload = function()
{
eval(callBack);
}
}
}
}
</script>
在url接收方收到请求,进行验证,创建本地用户cookie。还可以加个票据
------解决方案--------------------------------------------------------
单点登录(Single Sign On)简称SSO,是目前比较流行的企业业务整合的解决方案之一。在开发企业门户网站或电子商务系统时,设计一个用户只能在同一网站进行惟一登录的功能。

Cache对象主要用于Web应用程序的缓存。对于每个应用程序都需要创建Cache对象的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效,有关Cache对象实例的所有信息都须通过HttpContext对象的Cache属性或Page对象的Cache属性来提供。

本实例中,把用户的登录信息保存在Cache对象中,并设置过期时间为Session变量失效的时间,因此,一旦Session变量失效,Cache对象也就过期了;但Cache对象对所有的用户还可以访问,因此,用它保存用户信息比数据库来得方便。

实现关键代码如下:

 

protected void btnLogin_Click(object sender, EventArgs e)
{
int i = this.checkLogin(txtName.Text,txtPwd.Text);
if (i> 0)
{
string str_Key = txtName.Text + "_" + txtPwd.Text;
// 得到Cache中的给定str_Key的值
string str_User = Convert.ToString(Cache[str_Key]);
// Cache中如果没有str_Key的项目,那么用户没有登录
if (str_User == String.Empty)
{
// TimeSpan构造函数,用来判断是否登录。
TimeSpan SessTimeOut = new TimeSpan(0,0,HttpContext.Current.Session.Timeout,0,0); HttpContext.Current.Cache.Insert(str_Key,str_Key,null,DateTime.MaxValue,SessTimeOut, CacheItemPriority.NotRemovable,null);
Session["User"] = str_Key;
// 首次登录成功
Response.Write("<h2 style='color:red'>你好,登录成功!");
}
else
{
  相关解决方案