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;
 }
Exemplo n.º 3
0
        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);
                }
            }
        }