Esempio n. 1
0
 /// <summary>
 /// Gets the primary identity claim to create the SCTAuthorizationPolicy
 /// </summary>
 /// <param name="authContext">The authorization context</param>
 /// <returns>The primary identity claim from the authorization context.</returns>
 SysClaim GetPrimaryIdentityClaim(SystemAuthorizationContext authContext)
 {
     if (authContext != null)
     {
         for (int i = 0; i < authContext.ClaimSets.Count; ++i)
         {
             System.IdentityModel.Claims.ClaimSet claimSet = authContext.ClaimSets[i];
             foreach (System.IdentityModel.Claims.Claim claim in claimSet.FindClaims(null, System.IdentityModel.Claims.Rights.Identity))
             {
                 return(claim);
             }
         }
     }
     return(null);
 }
        public static ClaimsIdentity CreateClaimsIdentityFromClaimSet(System.IdentityModel.Claims.ClaimSet claimset, string authenticationType)
        {
            if (claimset == null)
            {
                throw new ArgumentNullException("claimSet");
            }

            string issuer = null;

            if (claimset.Issuer == null)
            {
                issuer = ClaimsIdentity.DefaultIssuer;
            }
            else
            {
                foreach (System.IdentityModel.Claims.Claim claim in claimset.Issuer.FindClaims(System.IdentityModel.Claims.ClaimTypes.Name, System.IdentityModel.Claims.Rights.Identity))
                {
                    if ((claim != null) && (claim.Resource is string))
                    {
                        issuer = claim.Resource as string;
                        break;
                    }
                }
            }

            ClaimsIdentity claimsIdentity = new ClaimsIdentity(authenticationType);

            for (int i = 0; i < claimset.Count; ++i)
            {
                //
                // Only capture possesses property claims
                //
                if (String.Equals(claimset[i].Right, System.IdentityModel.Claims.Rights.PossessProperty, StringComparison.Ordinal))
                {
                    claimsIdentity.AddClaim(CreateClaimFromWcfClaim(claimset[i], issuer));
                }
            }

            return(claimsIdentity);
        }
 public static ClaimsIdentity CreateClaimsIdentityFromClaimSet(System.IdentityModel.Claims.ClaimSet claimset)
 {
     return(CreateClaimsIdentityFromClaimSet(claimset, null));
 }