Пример #1
0
        Models.SessionWapper IAccountService.Login(Account para)
        {
            //检查用户登录名
            var account = GetAccountByLoginName(para.Name);

            if (account == null || (account != null && account.PassWord != para.PassWord))
            {
                throw new ExceptionBase("用户名或密码错误");
            }
            account.PassWord = string.Empty;


            string        sessionKey = string.Empty;
            SessionWapper session    = null;

            if (CheckSessionIsExpired(para.Name, out sessionKey))
            {
                session            = new SessionWapper();
                session.SessionKey = sessionKey;
                session.Account    = account;
            }
            else
            {
                session = CreateSession(account);
            }

            CreateLog(para.Name, session);

            return(session);
        }
Пример #2
0
        private void CreateLog(string loginName, SessionWapper sessionWapper)
        {
            AccountLog log = new AccountLog();

            log.LoginName  = loginName;
            log.SessionKey = sessionWapper.SessionKey;
            log.CreateTime = sessionWapper.CreateTime;
            log.ActionName = "Login";
            loginLogDao.Create(log);
        }
Пример #3
0
        private SessionWapper CreateSession(Account account)
        {
            SessionWapper            session  = new SessionWapper();
            MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
            string str = account.Name + DateTime.Now.ToString() + Guid.NewGuid().ToString();

            session.Account    = account;
            session.SessionKey = BitConverter.ToString(provider.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str)));
            session.CreateTime = DateTime.Now;
            return(session);
        }