コード例 #1
0
        public ExternalLoginData Parse(ClaimsIdentity identity)
        {
            if (identity == null)
            {
                return null;
            }

            var nameClaim = identity.FindFirst(ClaimTypes.NameIdentifier);
            if (nameClaim == null || String.IsNullOrEmpty(nameClaim.Issuer) || String.IsNullOrEmpty(nameClaim.Value))
            {
                throw new ApplicationException("Cannot find a claim of ClaimTypes.NameIdentifier");
            }

            if (nameClaim.Issuer == ClaimsIdentity.DefaultIssuer)
            {
                return null;
            }

            var loginData = new ExternalLoginData
                {
                    ProviderName = nameClaim.Issuer,
                    ProviderKey = nameClaim.Value,
                    Name = identity.GetFirstOrDefault(ClaimTypes.Name),
                    Email = identity.GetFirstOrDefault(ClaimTypes.Email),
                };

            ParseDetailLoginData(identity, ref loginData);

            return loginData;
        }
コード例 #2
0
 public void Parse(ClaimsIdentity identity, ref ExternalLoginData loginData)
 {
     loginData.Profile = identity.GetFirstOrDefault("urn:github:url");
     loginData.UserName = identity.GetFirstOrDefault(ClaimTypes.Name);
     loginData.Name = identity.GetFirstOrDefault("urn:github:name");
 }
コード例 #3
0
 public void Parse(ClaimsIdentity identity, ref ExternalLoginData loginData)
 {
     loginData.Profile = identity.GetFirstOrDefault("urn:google:profile");
 }
コード例 #4
0
 public void Parse(ClaimsIdentity identity, ref ExternalLoginData loginData)
 {
     loginData.Profile = identity.GetFirstOrDefault("urn:linkedin:url");
     loginData.Name = identity.GetFirstOrDefault("urn:linkedin:name");
 }