public override MembershipUser GetUser(string username, bool userIsOnline) { UserSession user = default(UserSession); try { var cacheKey = string.Format("UserData_{0}", username); if (HttpRuntime.Cache[cacheKey] != null) { return((CustomMembershipUser)HttpRuntime.Cache[cacheKey]); } else { UserSession userF = new UserSession() { Email = username }; Result resultApi = new Result(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(baseUrl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage res = client.PostAsJsonAsync("api/Secutity/GetUserByUserName/", userF).Result; if (res.IsSuccessStatusCode) { var response = res.Content.ReadAsStringAsync().Result; resultApi = JsonConvert.DeserializeObject <Result>(response); if (resultApi.Status == ResultStatus.Ok) { userF = JsonConvert.DeserializeObject <UserSession>(resultApi.ObjectResult.ToString()); } } } if (userF != null) { user = GetUsuarioLogin(userF); UserSession userSession = GetUserSession(user); if (userSession != null) { var membershipUser = new CustomMembershipUser(userSession); HttpRuntime.Cache.Insert(cacheKey, membershipUser, null, DateTime.Now.AddMinutes(cacheTimeoutInMinutes), Cache.NoSlidingExpiration); return(membershipUser); } } return(null); } } catch (Exception ex) { throw ex; } }
public override bool ValidateUser(string username, string password) { var result = false; UserSession userF = new UserSession() { Email = username, Password = password }; Result resultApi = new Result(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(baseUrl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage res = client.PostAsJsonAsync("api/Security/GetUserByUserName/", userF).Result; if (res.IsSuccessStatusCode) { var response = res.Content.ReadAsStringAsync().Result; resultApi = JsonConvert.DeserializeObject <Result>(response); if (resultApi.Status == ResultStatus.Ok) { userF = JsonConvert.DeserializeObject <UserSession>(resultApi.ObjectResult.ToString()); } } } if (resultApi.Status == ResultStatus.Error) { throw new Exception(resultApi.Message); } if (string.IsNullOrEmpty(password) && userF != null) { if (resultApi.Status == ResultStatus.Error) { throw new Exception(resultApi.Message); } UserSession user = GetUsuarioLogin(userF); var userSession = GetUserSession(user); if (userSession != null) { var membershipUser = new CustomMembershipUser(userSession); var cacheKey = string.Format("UserData_{0}", username); HttpRuntime.Cache.Insert(cacheKey, membershipUser, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); result = true; } } else { UserSession userLog = new UserSession() { Email = username, Password = password }; using (var client = new HttpClient()) { client.BaseAddress = new Uri(baseUrl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage res = client.PostAsJsonAsync("api/Security/GetUserByUserName/", userLog).Result; if (res.IsSuccessStatusCode) { var response = res.Content.ReadAsStringAsync().Result; resultApi = JsonConvert.DeserializeObject <Result>(response); if (resultApi.Status == ResultStatus.Ok) { userLog = JsonConvert.DeserializeObject <UserSession>(resultApi.ObjectResult.ToString()); } } } result = userLog != null; if (result) { UserSession user = GetUsuarioLogin(userLog); var userSession = GetUserSession(user); if (userSession != null) { System.Web.HttpContext.Current.Session["CustomerId"] = userSession.CustomerId; } } } return(result); }