ASP.NET Core中如何从SAML 2.0 Claims提取邮箱信息
提取SAML 2.0声明中的邮箱地址
你可以通过以下几种方式从SAML认证响应的Claims集合中提取目标邮箱:
方法一:使用FindFirst方法(简洁写法)
直接通过声明类型查找并获取值:
// 目标声明的OID类型 var targetClaimType = "urn:oid:1.3.6.1.4.1.5923.1.1.1.6"; // 提取邮箱值,使用空合并运算符避免空引用 string email = saml2AuthnResponse.ClaimsIdentity.FindFirst(targetClaimType)?.Value?.Trim();
方法二:遍历Claims集合查找
如果需要更灵活的判断逻辑,可以遍历集合筛选:
var targetClaimType = "urn:oid:1.3.6.1.4.1.5923.1.1.1.6"; var emailClaim = saml2AuthnResponse.ClaimsIdentity.Claims .FirstOrDefault(claim => claim.Type == targetClaimType); string email = emailClaim?.Value?.Trim();
注:
urn:oid:1.3.6.1.4.1.5923.1.1.1.6对应的是eduPersonPrincipalName属性,通常会返回用户的邮箱格式标识符,使用Trim()可以去除值前后可能存在的空格。
内容的提问来源于stack exchange,提问作者SkyeBoniwell
相关产品推荐
相关产品推荐

