时间:2016-02-16 00:40 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【.NET 单点登录解决方案】,下面是详细的讲解!
.NET 单点登录解决方案
private void isLogin()
{
Hashtable h=(Hashtable)Application["online"];
if (h==null)
{
h=new Hashtable();
}
//验证用户是否在Application中存在(是否在线)
IDictionaryEnumerator e1=h.GetEnumerator();
bool flag=false;
while (e1.MoveNext())
{
if (checkCookie(e1.Value.ToString()))
{
flag=true;
break;
}
}
if (flag)
{
Response.Write("<script defer language='javascript'>alert('This user is online!');history.go(-1);</script>");
}
else
{
loginLogic login=new loginLogic(this.txt_user_id.Text.Trim(), this.txt_password.Text.Trim());
if (!login.getLoginStatus)
{
Response.Write("<script defer language='javascript'>alert('Invalid UserID or password.Please try again.');</script>");
}
else
{
//生成服务端标识值
DateTime now=DateTime.Now;
string cookieValue=now.Year.ToString() + now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + now.Second.ToString() + now.Millisecond.ToString();
//把userid + 标识值写入全局变量表
h[Session.SessionID]=this.txt_user_id.Text.Trim() + "-" + cookieValue;
Application["Online"]=h;
//把标识值写入客户端cookie
Response.Cookies["hqs"].Value=cookieValue;
Response.Cookies["hqs"].Expires=DateTime.Now.AddDays(1);
//用户信息记入session
Session["userid"]=this.txt_user_id.Text.Trim();
Response.Redirect("Manage/index.aspx");
}
}
}
private bool checkCookie(string appValue)
{
bool isExist=false;
if (Request.Cookies["hqs"] !=null)
{
string cookieValue=Request.Cookies["hqs"].Value;
char[] sp=new char[1]{'-'};
string appUserid=appValue.Split(sp)[0].ToString();
string appCookie=appValue.Split(sp)[1].ToString();
if (appUserid==this.txt_user_id.Text.Trim() && appCookie !=cookieValue)
isExist=true;
}
return isExist;
}
关于.NET 单点登录解决方案的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 【asp】asp.net开发中常见公共捕获异常方式总结(
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
