asp.net防止用户同时登陆问题 就是一个账号登陆系统后。这个账号不能在其它计算机上进行登陆。我自己的思路有问题:当一个账号登陆时给把它的状态设置1,点击退出时状态清0 这样通过状态就能实现这一功能但是如果用户不是点击退出按钮退出和断电、关闭浏览器退出.....等意外情况退出时那么系统就不能修改它的状态了下次登陆时系统就会提示该账号已登陆就不能进行登陆了大家给给思路~~这个应该怎么做~~
解决方案 »
- asp.net里对sql 2005里数据插入、修改?
- js.cookie()
- 在Friefox中使用JQ的AJAX方法没反映
- CheckBox的Text里面添加一个a标签,能不能在a标签写onserverclick事件
- Datalist中的ItemTemplate嵌套checkbox如何获取打钩的行的ID号
- 如何给层加事件?
- asp.net如何实现换模板(skin)?
- 动态创建的表格如何得到高度
- 除了MSXML2.ServerXMLHTTP、HttpWebRequest 和 HttpWebResponse还有没有其它方法获得远程数据??
- asp.net根据设定的字数自动分页
- 装完VS2010后 SQL2005不能用了
- 求改一个JS
一般都是保存Session,定时判断Session是否为空。
设置用户状态,AJAX轮询判断用户操作时间和状态
登陆时我可以在Application中存在此用户ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
for (int i = 0; i < list.Count; i++)
{
if (UserId == (list[i] as string))
{
//已经登录了,提示错误信息
Error.Text = "此用户已经登录";
return;
}
} 但是退出时就不好怎么做了
有问题的就是当用户直接点浏览器右上角的关闭按钮时、按下Alt+F4时就不能正确判断用户已退出
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == 'submit')
{
objs[i].disabled = true;
}
}
} //--> < /script>//ASP.NET中防止页面多次提交的代码:asp.netpublic class PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, System.EventArgs e)
{
this.GetPostBackEventReference(this.Button3);
//保证 __doPostBack(eventTarget, eventArgument) 正确注册 if(!IsPostBack)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("if (typeof(Page_ClientValidate) == 'function')
{
if (Page_ClientValidate() == false)
{
return false;
}
}"); //保证验证函数的执行 sb.Append("if(window.confirm('are you sure?')==false) return false; ");
//自定义客户端脚本 sb.Append("disableOtherSubmit(); ");
// disable所有submit按钮 sb.Append(this.GetPostBackEventReference(this.Button3));
//用__doPostBack来提交,保证按钮的服务器端click事件执行 sb.Append("; ");
Button3.Attributes.Add("onclick",sb.ToString());
}
} #region Web Form Designer generated code override protected void OnInit(EventArgs e)
{
// // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent();
base.OnInit(e);
}
/// < summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// < /summary> private void InitializeComponent()
{
this.Button3.Click += new System.EventHandler(this.Button3_Click); this.Load += new System.EventHandler(this.Page_Load);
}
#endregion private void Button3_Click(object sender, System.EventArgs e)
{
System.Threading.Thread.Sleep(3000);
Response.Write("Hello world!");
}
} 此处只是disable掉所有的submit button, 我觉得其它的可提交控件也是可以通过类似的方法来disable的.以上就是ASP.NET中防止页面多次提交的代码实现
只能这个登录就另外一个下线,和QQ一样