Exemplo n.º 1
0
        public object Me()
        {
            MinifiedUser oUser = (MinifiedUser)UserHelper.GetCurrentUser(true);

            if (oUser != null)
            {
                if (oUser.persistent)
                {
                    //need to postpone the cookie for each request. it is because user has checked 'remember me' when logged...
                    int iRemember = 90;
                    System.Web.HttpCookie newCookie = new System.Web.HttpCookie("UserData");
                    newCookie.Name    = "UserData";
                    newCookie.Path    = "/";
                    newCookie.Value   = Newtonsoft.Json.JsonConvert.SerializeObject(oUser);
                    newCookie.Expires = DateTime.Now.AddDays(iRemember);
                    //newCookie.Domain = "192.118.60.111";

                    System.Web.HttpContext.Current.Response.Cookies.Add(newCookie);
                }
                return(oUser);
            }
            else
            {
                //if user did not match, or was not present on cookie, return 401
                var resp = new HttpResponseMessage();
                resp.StatusCode = HttpStatusCode.Unauthorized;
                string msg = "{\"Message\":\"Authorization has been denied for this request.\"}";
                resp.Content = new StringContent(msg, System.Text.Encoding.UTF8, "application/json");

                return(resp);
            }
        }
Exemplo n.º 2
0
        public object Login(LoginData loginData)
        {
            //implement: check login
            Login oLogin = new Login(loginData);

            if (oLogin.CheckLogin())
            {
                //user is logged
                FormsAuthentication.SetAuthCookie(loginData.userName, loginData.rememberMe);
                //return the user profile from login object;
                MinifiedUser oUser = oLogin.User;
                oLogin = null;
                int iRemember = loginData.rememberMe ? 90 : 1;
                System.Web.HttpCookie newCookie = new System.Web.HttpCookie("UserData");
                newCookie.Name    = "UserData";
                newCookie.Path    = "/";
                newCookie.Value   = Newtonsoft.Json.JsonConvert.SerializeObject(oUser);
                newCookie.Expires = DateTime.Now.AddDays(iRemember);

                System.Web.HttpContext.Current.Response.Cookies.Add(newCookie);

                return(oUser);
            }
            else
            {
                //no such user exists
                var resp = new HttpResponseMessage();
                resp.StatusCode = HttpStatusCode.Unauthorized;
                //add login message to the response
                string msg = "{ \"error\":\"" + Models.Login.FriendlyLoginMessage(oLogin.LoginStatusCode);
                if (oLogin.LoginStatusCode == Models.Login.LoginStatus.GeneralError)
                {
                    msg += ": " + oLogin.LoginMessage;
                }
                msg         += "\" }";
                resp.Content = new StringContent(msg, System.Text.Encoding.UTF8, "application/json");

                return(resp);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a users with minified data from an existing json token
        /// </summary>
        public IMinifiedUser MapJsonToMinifiedUser(JToken jUser)
        {
            if (!jUser.HasValues)
            {
                return(null);
            }

            IMinifiedUser u = new MinifiedUser()
            {
                Id              = long.Parse(jUser["id"].ToString()),
                Username        = jUser["username"].ToString(),
                ProfileImageUrl = jUser["profile_picture"].ToString(),
                FullName        = jUser.Children <JProperty>().Any(x => x.Name == "full_name") ? jUser["full_name"].ToString() : null,
            };

            if (u.FullName == null)
            {
                u.FullName  = jUser.Children <JProperty>().Any(x => x.Name == "first_name") ? jUser["first_name"].ToString() : null;
                u.FullName += jUser.Children <JProperty>().Any(x => x.Name == "last_name") ? " " + jUser["last_name"].ToString() : null;
            }

            return(u);
        }