码迷,mamicode.com
首页 > 其他好文 > 详细

单点登录

时间:2014-10-13 19:57:57      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   os   ar   java   for   sp   art   

最近做项目的时候碰到一个问题,就是第一个人已经登录成功了之后,第二个人用同一个账号也登录的时候,就会有第一个人被迫下线。。。

 

首先建一个CommonPage.aspx,后台代码:

public partial class CommonPage : System.Web.UI.Page
{
public CommonPage()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
override protected void OnInit(EventArgs e)
{
Hashtable hOnline = (Hashtable)Application["Online"];
if (hOnline != null)
{
IDictionaryEnumerator idE = hOnline.GetEnumerator();
while (idE.MoveNext())
{
if (idE.Key != null && idE.Key.ToString().Equals(Session.SessionID))
{
//already login
if (idE.Value != null && "HYWF-PRIMARY".Equals(idE.Value.ToString()))
{
hOnline.Remove(Session.SessionID);
Application.Lock();
Application["Online"] = hOnline;
Application.UnLock();
string js = "<script language=javascript>alert(‘{0}‘);window.open(‘/Manage/Login.aspx‘,‘_parent‘)</script>";
Response.Write(string.Format(js, "帐号已在别处登陆,你将被强迫下线(请保管好自己的用户密码)!"));

return;
}
break;
}
}
}
}
}

 

然后每个aspx页面继承这个页面,如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Maticsoft.Web.Manage
{
public partial class Menu : Maticsoft.Web.CommonPage
{
protected void Page_Load(object sender, EventArgs e)
{

}

}

但是也有个问题,如果是同时部署到多个服务器上,实现负载均衡那么就不能成功。一台服务器可以。。。

 

单点登录

标签:style   color   io   os   ar   java   for   sp   art   

原文地址:http://www.cnblogs.com/xiaoqi742709106/p/4022670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!