public void InteropSerializerCanReadNewTicket() { var user = new ClaimsPrincipal(); var identity = new ClaimsIdentity("scheme"); identity.AddClaim(new Claim("Test", "Value")); user.AddIdentity(identity); var expires = DateTime.Today; var issued = new DateTime(1979, 11, 11); var properties = new Http.Authentication.AuthenticationProperties(); properties.IsPersistent = true; properties.RedirectUri = "/redirect"; properties.Items["key"] = "value"; properties.ExpiresUtc = expires; properties.IssuedUtc = issued; var newTicket = new AuthenticationTicket(user, properties, "scheme"); var newSerializer = new TicketSerializer(); var bytes = newSerializer.Serialize(newTicket); var interopSerializer = new AspNetTicketSerializer(); var interopTicket = interopSerializer.Deserialize(bytes); Assert.NotNull(interopTicket); var newIdentity = interopTicket.Identity; Assert.NotNull(newIdentity); Assert.Equal("scheme", newIdentity.AuthenticationType); Assert.True(newIdentity.HasClaim(c => c.Type == "Test" && c.Value == "Value")); Assert.NotNull(interopTicket.Properties); Assert.True(interopTicket.Properties.IsPersistent); Assert.Equal("/redirect", interopTicket.Properties.RedirectUri); Assert.Equal("value", interopTicket.Properties.Dictionary["key"]); Assert.Equal(expires, interopTicket.Properties.ExpiresUtc); Assert.Equal(issued, interopTicket.Properties.IssuedUtc); }