Ejemplo n.º 1
0
        public HttpResponseMessage Login([FromBody] Models.LoginInfo LoginInfo)
        {
            Models.UserSession UserManager = new Models.UserSession();
            string             msg         = string.Empty;
            var userSession = new Models.UserSession().Login(LoginInfo.UserName, LoginInfo.Password, out msg);

            if (string.IsNullOrWhiteSpace(msg))
            {
                if (!string.IsNullOrWhiteSpace(LoginInfo.IMEI))
                {
                    userSession.LOGFLAG = LoginInfo.IMEI;
                }
                userSession.LASTLOGINTIME = DateTime.Now;
                userSession.Version       = LoginInfo.Version;
                userSession.Plateform     = LoginInfo.Plateform;
                userSession.ChannelID     = LoginInfo.ChannelID;
                UserManager.SetUserSession(userSession);
                resObj.data = userSession;
            }
            else
            {
                resObj.error = 1;
                resObj.data  = msg;
            }
            return(Json(resObj));
        }
Ejemplo n.º 2
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string userName = txtUserName.Text.Trim();
            string userPwd  = txtPassword.Text.Trim();

            if (userName.Equals("") || userPwd.Equals(""))
            {
                msgtip.InnerHtml = "请输入用户名或密码";
                return;
            }
            if (Session["AdminLoginSun"] == null)
            {
                Session["AdminLoginSun"] = 1;
            }
            else
            {
                Session["AdminLoginSun"] = Convert.ToInt32(Session["AdminLoginSun"]) + 1;
            }
            //判断登录错误次数
            if (Session["AdminLoginSun"] != null && Convert.ToInt32(Session["AdminLoginSun"]) > 5)
            {
                msgtip.InnerHtml = "错误超过5次,关闭浏览器重新登录!";
                return;
            }
            BLL.manager   bll   = new BLL.manager();
            Model.manager model = bll.GetModel(userName, userPwd, true);
            if (model == null)
            {
                msgtip.InnerHtml = "用户名或密码有误,请重试!";
                return;
            }
            Session[DTKeys.SESSION_ADMIN_INFO] = model;
            string msg         = string.Empty;
            var    userSession = new Models.UserSession().Login(userName, userPwd, out msg);

            if (string.IsNullOrWhiteSpace(msg))
            {
                userSession.LOGFLAG       = Models.UserSession.GetClientIP();
                userSession.LASTLOGINTIME = DateTime.Now;
                //userSession.Version = LoginInfo.Version;
                userSession.Plateform = 1;
                new Models.UserSession().SetUserSession(userSession);
            }
            Session.Timeout = 45;
            //写入登录日志
            Model.siteconfig siteConfig = new BLL.siteconfig().loadConfig();
            if (siteConfig.logstatus > 0)
            {
                new BLL.manager_log().Add(model.id, model.user_name, DTEnums.ActionEnum.Login.ToString(), "用户登录");
            }
            //写入Cookies
            Utils.WriteCookie("DTRememberName", model.user_name, 14400);
            Utils.WriteCookie("AdminName", "DTcms", model.user_name);
            Utils.WriteCookie("AdminPwd", "DTcms", model.password);
            Response.Redirect("index.aspx");
            return;
        }
Ejemplo n.º 3
0
        public static UserSession From(Models.UserSession source)
        {
            var result = new UserSession();

            result.IsAuthenticated = source.IsAuthenticated;
            result.DisplayName     = source.DisplayName;
            result.PrimaryEmail    = source.PrimaryEmail;
            result.Roles           = source.Roles;
            result.Permissions     = source.Permissions;

            return(result);
        }
Ejemplo n.º 4
0
        private void AddSession(LoginUserRequest request, LoginUserResponse response)
        {
            var user = _usersRepository.ReturnIfExsists(request.Email, request.Password);

            var sessionId = CreateSessionId();

            var expires = DateTime.Now.AddMinutes(20);


            var session = new Models.UserSession()
            {
                Expires = expires,
                UserId  = user.Id, //TODO fix
                Ticket  = sessionId
            };

            response.ExpireDate = expires;

            _userSessionRepository.AddSession(session);
            response.Ticket = sessionId;
        }
Ejemplo n.º 5
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            // check null parameter
            if (actionContext.ActionArguments.Count > 0)
            {
                if (actionContext.ActionArguments.Any(p => { return(p.Value == null); }))
                {
                    Model.BaseResponse res = new Model.BaseResponse
                    {
                        error = 5,
                        data  = "参数缺失"
                    };
                    actionContext.Response = ApiBaseController.Json(res);
                    base.OnActionExecuting(actionContext);
                }
            }
            var  attr        = actionContext.ActionDescriptor.GetCustomAttributes <AllowAnonymousAttribute>().OfType <AllowAnonymousAttribute>();
            bool isAnonymous = attr.Any(a => a is AllowAnonymousAttribute);

            if (isAnonymous)
            {
                base.OnActionExecuting(actionContext);
            }
            else
            {
                // token in header
                var    request = actionContext.Request;
                string token   = string.Empty;
                if (request.Headers.Contains("token"))
                {
                    token = HttpUtility.UrlDecode(request.Headers.GetValues("token").FirstOrDefault());
                }
                if (!string.IsNullOrEmpty(token)) // app Access
                {
                    var currentUser = new Models.UserSession().GetUserSession(token);
                    if (currentUser == null)
                    {
                        Model.BaseResponse res = new Model.BaseResponse
                        {
                            error = 2,
                            data  = "用户信息已失效,请重新登录"
                        };
                        actionContext.Response = ApiBaseController.Json(res);
                    }
                    else
                    {
                        new Models.UserSession().SetUserSession(currentUser);
                    }
                }
                else   // web access
                {
                    if (Models.UserSession.GetCurrentUser() == null)
                    {
                        Model.BaseResponse res = new Model.BaseResponse
                        {
                            error = 2,
                            data  = "用户信息已失效,请重新登录"
                        };
                        actionContext.Response = ApiBaseController.Json(res);
                    }
                }
                base.OnActionExecuting(actionContext);
            }
        }
 public static Profile From(Models.UserSession source)
 {
     return(new Profile().PopulateWith(source));
 }