Beispiel #1
0
        public static bool CheckLogin(out string msg)
        {
            msg = "";
            object session = System.Web.HttpContext.Current.Session[FoWoSoft.Utility.Keys.SessionKeys.UserID.ToString()];
            Guid   uid;

            if (session == null || !session.ToString().IsGuid(out uid) || uid == Guid.Empty)
            {
                return(false);
            }

            //#if DEBUG
            // return true; //正式使用时请注释掉这一行
            //#endif

            string uniqueIDSessionKey = FoWoSoft.Utility.Keys.SessionKeys.UserUniqueID.ToString();
            var    user = new FoWoSoft.Platform.OnlineUsers().Get(uid);

            if (user == null)
            {
                return(false);
            }
            else if (System.Web.HttpContext.Current.Session[uniqueIDSessionKey] == null)
            {
                return(false);
            }
            else if (string.Compare(System.Web.HttpContext.Current.Session[uniqueIDSessionKey].ToString(), user.UniqueID.ToString(), true) != 0)
            {
                msg = string.Format("您的帐号在{0}登录,您被迫下线!", user.IP);
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            FoWoSoft.Platform.OnlineUsers bou = new FoWoSoft.Platform.OnlineUsers();
            string name = string.Empty;

            if (IsPostBack)
            {
                name = Request.Form["Name"];
                if (!Request.Form["ClearAll"].IsNullOrEmpty())
                {
                    bou.RemoveAll();
                }

                if (!Request.Form["ClearSelect"].IsNullOrEmpty())
                {
                    string userids = Request.Form["checkbox_app"];
                    if (!userids.IsNullOrEmpty())
                    {
                        foreach (string userid in userids.Split(','))
                        {
                            Guid uid;
                            if (userid.IsGuid(out uid))
                            {
                                bou.Remove(uid);
                            }
                        }
                    }
                }
            }
            else
            {
                name = Request.QueryString["Name"];
            }
            UserList        = bou.GetAll();
            this.Count.Text = UserList.Count.ToString();
            if (!name.IsNullOrEmpty())
            {
                UserList = UserList.Where(p => p.UserName.IndexOf(name) >= 0).ToList();
            }
        }
Beispiel #3
0
        private void UserCheck()
        {
            if (Request.QueryString["userid"] == null)
            {
                Response.Redirect("http://caslogin.ecnu.edu.cn/login.aspx?url=" + Request.Url.ToString() + "");
            }

            string userid = Request.QueryString["userid"].ToString(); //获取userid
            string token  = Request.QueryString["token"].ToString();  //获取token

            Session["userid"] = userid;
            Session["token"]  = token;
            var     ecnuws  = new cn.edu.ecnu.datawebservice.ECNUWebService();
            DataSet tokends = ecnuws.CASLOGIN_Check(userid, token); //调用webservice接口,详细接口信息查看相关webservice接口文档

            if (tokends == null)
            {
                Response.Redirect("http://caslogin.ecnu.edu.cn/login.aspx?url=" + Request.Url.ToString() + "&error=webservice出错, 请从网站登录页面登录");
            }

            if (tokends.Tables[0].Rows[0][0].ToString().Contains("OK:"))
            {
                //此处为认证部分结束,由业务系统自定义代码,跳转其他页面
                //判断本地是否有用户
                var user = new WebForm.Common.UserService().CreateNewUser(userid);

                //保存用户信息
                FoWoSoft.Platform.OnlineUsers bou = new FoWoSoft.Platform.OnlineUsers();
                Guid uniqueID = Guid.NewGuid();
                Session[FoWoSoft.Utility.Keys.SessionKeys.UserID.ToString()]       = user.ID;
                Session[FoWoSoft.Utility.Keys.SessionKeys.UserUniqueID.ToString()] = uniqueID;
                bou.Add(user, uniqueID);
            }
            else  //认证出错后继续跳转到统一身份认证页面加上ERROR参数
            {
                string url = Request.Url.ToString();
                Response.Redirect("http://caslogin.ecnu.edu.cn/login.aspx?url=" + url + "&error=" + tokends.Tables[0].Rows[0][0].ToString() + ",请从网站登录页面登录");
            }
        }
Beispiel #4
0
        private void check()
        {
            string isVcodeSessionKey = FoWoSoft.Utility.Keys.SessionKeys.IsValidateCode.ToString();
            string vcodeSessionKey   = FoWoSoft.Utility.Keys.SessionKeys.ValidateCode.ToString();

            string account       = Request.Form["Account"];
            string password      = Request.Form["Password"];
            string force         = Request.Form["Force"];
            string vcode         = Request.Form["VCode"];
            bool   isSessionLost = "1" == Request.QueryString["session"];//是否是超时后再登录

            if (Session[isVcodeSessionKey] != null &&
                "1" == Session[isVcodeSessionKey].ToString() &&
                (Session[vcodeSessionKey] == null ||
                 string.Compare(Session[vcodeSessionKey].ToString(), vcode.Trim(), true) != 0))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "error", "alert('验证码错误!');", true);
            }
            else if (account.IsNullOrEmpty() || password.IsNullOrEmpty())
            {
                Session[isVcodeSessionKey] = "1";
                FoWoSoft.Platform.Log.Add("用户登录失败", string.Concat("用户:", account, "登录失败,帐号或密码为空"), FoWoSoft.Platform.Log.Types.用户登录);
                Script = "alert('帐号或密码不能为空!');";
            }
            else
            {
                FoWoSoft.Platform.Users busers = new FoWoSoft.Platform.Users();
                var user = busers.GetByAccount(account.Trim());
                if (user == null || string.Compare(user.Password, busers.GetUserEncryptionPassword(user.ID.ToString(), password.Trim()), false) != 0)
                {
                    Session[isVcodeSessionKey] = "1";
                    FoWoSoft.Platform.Log.Add("用户登录失败", string.Concat("用户:", account, "登录失败,帐号或密码错误"), FoWoSoft.Platform.Log.Types.用户登录);
                    Script = "alert('帐号或密码错误!');";
                }
                else if (user.Status == 1)
                {
                    Session[isVcodeSessionKey] = "1";
                    FoWoSoft.Platform.Log.Add("用户登录失败", string.Concat("用户:", account, "登录失败,帐号已被冻结"), FoWoSoft.Platform.Log.Types.用户登录);
                    Script = "alert('帐号已被冻结!');";
                }
                else
                {
                    FoWoSoft.Platform.OnlineUsers bou = new FoWoSoft.Platform.OnlineUsers();
                    var onUser = bou.Get(user.ID);
                    if (onUser != null && "1" != force)
                    {
                        string ip = onUser.IP;
                        Session.Remove(isVcodeSessionKey);
                        Script = "if(confirm('当前帐号已经在" + ip + "登录,您要强行登录吗?')){$('#Account').val('" + account + "');$('#Password').val('" + password + "');$('#Force').val('1');$('#form1').submit();}";
                    }
                    else
                    {
                        Guid uniqueID = Guid.NewGuid();
                        Session[FoWoSoft.Utility.Keys.SessionKeys.UserID.ToString()]       = user.ID;
                        Session[FoWoSoft.Utility.Keys.SessionKeys.UserUniqueID.ToString()] = uniqueID;
                        bou.Add(user, uniqueID);
                        Session.Remove(isVcodeSessionKey);
                        FoWoSoft.Platform.Log.Add("用户登录成功", string.Concat("用户:", user.Name, "(", user.ID, ")登录成功"), FoWoSoft.Platform.Log.Types.用户登录);
                        if (isSessionLost)
                        {
                            Script = "alert('登录成功!');new RoadUI.Window().close();";
                        }
                        else
                        {
                            Script = "top.location='" + Common.Tools.BaseUrl + "Default.aspx';";
                        }
                    }
                }
            }
        }