/// <summary> /// Genera un listado de claim con la información de usuario y el token de acceso /// </summary> /// <param name="user">Información del usuario del cual obtener los claims</param> /// <param name="accessToken">El token de acceso el cual incluir en los cliams</param> /// <returns>Listado de claims</returns> internal List <Claim> GetUserClaims(IsssteUser user, string accessToken) { var claimList = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.Id, StringClaimDataType), new Claim(ClaimTypes.Name, user.UserName, StringClaimDataType), new Claim(ClaimTypes.GivenName, user.Name, StringClaimDataType), new Claim(ClaimTypes.Email, user.Email, StringClaimDataType), new Claim(IsssteTramitesClaimTypes.Properties, JsonConvert.SerializeObject(user.Properties), IsssteTramitesClaimDataTypes.Properties), new Claim(IsssteTramitesClaimTypes.Roles, JsonConvert.SerializeObject(user.Roles), IsssteTramitesClaimDataTypes.Roles), new Claim(IsssteTramitesClaimTypes.AccessToken, accessToken, StringClaimDataType) }; // claimList.Add(new Claim(IsssteTramitesClaimTypes.AccessToken, this.AccessToken, StringClaimDataType)); return(claimList); }
/// <summary> /// Constructor de la clase /// </summary> /// <param name="context"></param> /// <param name="authenticationOptions"></param> /// <param name="state"></param> /// <param name="user"></param> /// <param name="accessToken"></param> /// <param name="refreshToken"></param> public IsssteTramitesContext(IOwinContext context, IsssteTramitesAuthenticationOptions authenticationOptions, string state, IsssteUser user, string accessToken, string refreshToken) : base(context) { this.AuthenticationOptions = authenticationOptions; this.AuthenticationProperties = this.AuthenticationOptions.StateDataFormat.Unprotect(state); this.User = user; this.AccessToken = accessToken; this.RefreshToken = refreshToken; this.AuthenticationProperties.Dictionary.Add("ExternalAccessToken", this.AccessToken); this.AuthenticationProperties.Dictionary.Add("ExternalRefreshToken", this.RefreshToken); }