public void WhenSerialized_ThenCanBeDeSerialized() { var formatter = new BinaryFormatter(); var identity = new MileageStatsIdentity("Name", "DisplayName", 1); MileageStatsIdentity recoveredIdentity = null; using (var stream = new MemoryStream()) { formatter.Serialize(stream, identity); stream.Seek(0, SeekOrigin.Begin); recoveredIdentity = (MileageStatsIdentity) formatter.Deserialize(stream); } Assert.NotNull(recoveredIdentity); Assert.Equal(identity.Name, recoveredIdentity.Name); Assert.Equal(identity.DisplayName, recoveredIdentity.DisplayName); Assert.Equal(identity.UserId, recoveredIdentity.UserId); }
public static User GetUserFromIdentity(this IUserServices services, MileageStatsIdentity identity) { var user = services.GetUserByClaimedIdentifier(identity.Name); return user; }
private void PostAuthenticateRequestHandler(object sender, EventArgs e) { HttpCookie authCookie = this.Context.Request.Cookies[FormsAuthentication.FormsCookieName]; if (IsValidAuthCookie(authCookie)) { var formsAuthentication = ServiceLocator.Current.GetInstance<IFormsAuthentication>(); var ticket = formsAuthentication.Decrypt(authCookie.Value); var mileageStatsIdentity = new MileageStatsIdentity(ticket); this.Context.User = new GenericPrincipal(mileageStatsIdentity, null); // Reset cookie for a sliding expiration. formsAuthentication.SetAuthCookie(this.Context, ticket); } }
private void PostAuthenticateRequestHandler(object sender, EventArgs e) { var formsAuthentication = ServiceLocator.Current.GetInstance<IFormsAuthentication>(); var ticket = formsAuthentication.GetAuthenticationTicket(new HttpContextWrapper(HttpContext.Current)); if (ticket != null) { var mileageStatsIdentity = new MileageStatsIdentity(ticket); //Implemented workaround for the scenario where the user is not found in the repository // but the cookie exists. var getUser = ServiceLocator.Current.GetInstance<GetUserByClaimId>(); if (getUser.Execute(mileageStatsIdentity.Name) == null) { formsAuthentication.Signout(); if (Context.Request.Headers["X-Requested-With"] == "XMLHttpRequest") { Context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; Context.Response.End(); } else { Context.Response.Redirect("~/Auth/Index", true); } } else { Context.User = new GenericPrincipal(mileageStatsIdentity, null); } } }