title: Cannot Deserialize ClaimsPrincipal
body: <p>Given I create a claims identity and subsequently a principal.
  Then I serialize the principal. Inspecting the json string I can confirm that the "Role" claim is there as well as the identity.</p>
  
  <p>Deserializing it back results in an object with empty properties. The <code>.Claims</code> and <code>.Identity</code> is lost.</p>
  
  <pre><code>var identity = new ClaimsIdentity(new List&lt;Claim&gt;() { new Claim("Role", "Admin") });
  var principal = new ClaimsPrincipal(identity);
  
  string serialized = JsonConvert.SerializeObject(principal, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
  ClaimsPrincipal deserialized = JsonConvert.DeserializeObject&lt;ClaimsPrincipal&gt;(serialized); // The object has all properties empty
  </code></pre>
  
  <p>Question: How can I ensure the object is correctly deserialized?</p>