面对同样的问题,我猜 claimPrinciple 是一个“受保护”的对象,不能那么容易地“复制”。查看 Swagger 生成的代码,一种解决方案可能是创建新类。遵循 swagger-gen 的片段:
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "9.13.15.0 (Newtonsoft.Json v11.0.0.0)")]
public partial class ClaimsPrincipal
{
[Newtonsoft.Json.JsonProperty("Claims", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Collections.Generic.ICollection<Claim> Claims { get; set; }
[Newtonsoft.Json.JsonProperty("Identities", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Collections.Generic.ICollection<ClaimsIdentity> Identities { get; set; }
[Newtonsoft.Json.JsonProperty("Identity", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public IIdentity Identity { get; set; }
public string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this);
}
public static ClaimsPrincipal FromJson(string data)
{
return Newtonsoft.Json.JsonConvert.DeserializeObject<ClaimsPrincipal>(data);
}
}