internal static User _GetUserFromToken(HttpRequest request) { string token = RequestManager.GetHttpValue(request, "AccessToken"); if (!string.IsNullOrEmpty(token)) { Guid userid = Kooboo.Data.Cache.AccessTokenCache.GetUserId(token); if (userid != default(Guid)) { return(GetUserFunc(userid)); } var user = Kooboo.Data.GlobalDb.Users.GetByToken(token); if (user != null) { Data.Cache.AccessTokenCache.SetToken(user.Id, token); } if (user != null) { if (!Kooboo.Data.Service.UserLoginService.IsAllow(user.Id)) { return(null); } } return(user); } return(null); }
public static User GetUser(HttpRequest request, RenderContext context = null) { var user = _GetUserFromToken(request); // the user first login with token, should try to find the last page of this user. if (user != null) { if (Kooboo.Data.Service.StartService.IsDefaultStartPage(request.RelativeUrl) && string.IsNullOrWhiteSpace(RequestManager.GetHttpValue(request, "returnurl"))) { var lasturl = Service.UserLoginService.GetLastPath(user.Id); if (!string.IsNullOrEmpty(lasturl)) { context.Response.Redirect(302, lasturl); context.Response.End = true; } } } else { user = _GetUserFromBasicAuthentication(request); } if (user != null && context != null) { string remember = context.Request.QueryString.Get("remember"); int days = 1; if (!string.IsNullOrEmpty(remember)) { days = 60; } context.Response.AppendCookie(DataConstants.UserApiSessionKey, user.Id.ToString(), days); } if (user == null) { user = _GetUserFromCookie(request); } //if (user != null && user.PasswordHash == default(Guid)) //{ // return null; //} return(user); }