에서 괄호를 제거하는 방법 나는 Azure AD B2C에서 얻은 email
주장에서 괄호를 제거하려고합니다.Azure 광고 B2C
사용자 로그인 후 사용자의 토큰을 디코딩하고 그 이메일을받습니다. 그러나 내가 얻는 이메일에는 그것에 괄호가 붙어있다. 전자 메일은 ["[email protected]"]
처럼 보이며 데이터베이스에 저장하면 추악 해집니다.
전자 메일 클레임에서 괄호를 제거하는 몇 가지 설정이 있습니까?
JObject ParseIdToken(string idToken)
{
// Get the piece with actual user info
idToken = idToken.Split('.')[1];
idToken = Base64UrlDecode(idToken);
return JObject.Parse(idToken);
}
private string Base64UrlDecode(string s)
{
s = s.Replace('-', '+').Replace('_', '/');
s = s.PadRight(s.Length + (4 - s.Length % 4) % 4, '=');
var byteArray = Convert.FromBase64String(s);
var decoded = Encoding.UTF8.GetString(byteArray, 0, byteArray.Count());
return decoded;
}
public void CacheUser(AuthenticationResult ar)
{
JObject user = ParseIdToken(ar.IdToken);
var cache = new CachedUsers
{
FullName = user["name"]?.ToString(),
Email = user["emails"]?.ToString()
};
BlobCache.LocalMachine.InsertObject("usercached", cache);
}
이메일을받는 것이 내 코드입니다. 이메일에 대괄호가있는 이유는 무엇입니까? 문제는 내 코드에있는 것이 아니라 Azure AD B2C에서 설정 한 것입니다. https://jwt.io/에서 토큰을 해독하려고하면 대괄호가있는 전자 메일이 반환됩니다. 아무도 이것을 경험 한 적이 있습니까? 여기
는당신은 이름과 이메일의 차이를 볼 수 있습니다 jwt.io에서 페이로드입니다. 전자 메일에는 [ ]
과 같은 대괄호가 있으며 원하는 대괄호를 제거하고 이름을 지정하는 방법을 알고 싶습니다. 왜냐하면 Xamarin 형식의 전자 메일을 받으면 대괄호가 있으므로 [email protected]
대신에 ["[email protected]"]
당신이 말하는 것을 이해하기가 약간 어렵습니다. 샘플 토큰을 공유하고 다른 토큰을 보길 기대할 수 있습니까? – Saca
나는 내 질문을 업데이 트, 당신이 감사합니다 알아낼 수 –
이게 당신이 찾고 있는거야 : user [ "emails"]? FirstOrDefault()? ToString() – Saca