public OpenIDLoginResponse(Binding <JObject> binding) { if (binding.BindingDirection != this.BindingDirection) { throw new ArgumentException("Binding has the wrong binding direction for this document"); } var json = binding.GetDocument(); if (json == null) { return; } this.AccessCode = json["code"]?.ToObject <string>(); this.ID = json[nameof(JwtOpenIDPayload.JsonTokenID)]?.ToObject <string>(); this.Issuer = json[nameof(JwtOpenIDPayload.Issuer)]?.ToObject <string>(); this.Subject = json[nameof(JwtOpenIDPayload.Subject)]?.ToObject <string>(); this.Audience = json[nameof(JwtOpenIDPayload.Audience)]?.ToObject <string>(); this.UserID = json[nameof(JwtOpenIDPayload.AAD_ObjectID)]?.ToObject <string>(); this.UserName = json[nameof(JwtOpenIDPayload.UniqueName)]?.ToObject <string>(); if (this.UserName == null) { this.UserName = json[nameof(JwtOpenIDPayload.AAD_UserPrincipalName)]?.ToObject <string>(); } this.Name = json[nameof(JwtOpenIDPayload.AAD_Name)]?.ToObject <string>(); if (json[nameof(JwtOpenIDPayload.Roles)] != null) { if (json[nameof(JwtOpenIDPayload.Roles)].Type == JTokenType.Array) { this.Roles = json[nameof(JwtOpenIDPayload.Roles)]?.ToObject <string[]>(); } else { this.Roles = json[nameof(JwtOpenIDPayload.Roles)]?.ToObject <string>().Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray(); } } this.Emails = json[nameof(JwtOpenIDPayload.AAD_Emails)]?.ToObject <string[]>(); this.Nonce = json[nameof(JwtOpenIDPayload.Nonce)]?.ToObject <string>(); this.IssuedAtTime = json[nameof(JwtOpenIDPayload.IssuedAtTime)]?.ToObject <long>(); this.NotBefore = json[nameof(JwtOpenIDPayload.NotBefore)]?.ToObject <long>(); this.Expiration = json[nameof(JwtOpenIDPayload.Expiration)]?.ToObject <long>(); this.X509Thumbprint = json[nameof(JwtHeader.X509Thumbprint)]?.ToObject <string>(); this.KeyID = json[nameof(JwtHeader.KeyID)]?.ToObject <string>(); this.State = json["state"]?.ToObject <string>(); this.OtherClaims = OpenIDJwtBinding.GetOtherClaims(json); this.Error = json["error"]?.ToObject <string>(); this.ErrorDescription = json["error_description"]?.ToObject <string>(); }
public OpenIDLogoutResponse(Binding <JObject> binding) { if (binding.BindingDirection != this.BindingDirection) { throw new ArgumentException("Binding has the wrong binding direction for this document"); } var json = binding.GetDocument(); if (json == null) { return; } this.ServiceProvider = json[OpenIDBinding.ClientFormName]?.ToObject <string>(); this.State = json["state"]?.ToObject <string>(); this.OtherClaims = OpenIDJwtBinding.GetOtherClaims(json); }