From 0d45fe73d75ca82b6968e2548f70bc59fe1ce9a1 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Fri, 12 Apr 2019 08:26:15 -0700 Subject: [PATCH] Handle MicrosoftAccount email fallback #9083 (#9304) --- .../MicrosoftAccount/src/MicrosoftAccountOptions.cs | 10 +++++++++- .../Authentication/test/MicrosoftAccountTests.cs | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountOptions.cs b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountOptions.cs index 8462913a3d..36abae5be7 100644 --- a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountOptions.cs +++ b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountOptions.cs @@ -27,7 +27,15 @@ namespace Microsoft.AspNetCore.Authentication.MicrosoftAccount ClaimActions.MapJsonKey(ClaimTypes.Name, "displayName"); ClaimActions.MapJsonKey(ClaimTypes.GivenName, "givenName"); ClaimActions.MapJsonKey(ClaimTypes.Surname, "surname"); - ClaimActions.MapCustomJson(ClaimTypes.Email, user => user.GetString("mail") ?? user.GetString("userPrincipalName")); + ClaimActions.MapCustomJson(ClaimTypes.Email, user => + { + var mail = user.GetString("mail"); + if (string.IsNullOrEmpty(mail)) + { + mail = user.GetString("userPrincipalName"); + } + return mail; + }); } } } diff --git a/src/Security/Authentication/test/MicrosoftAccountTests.cs b/src/Security/Authentication/test/MicrosoftAccountTests.cs index c13f4bf51b..5e6021ebab 100644 --- a/src/Security/Authentication/test/MicrosoftAccountTests.cs +++ b/src/Security/Authentication/test/MicrosoftAccountTests.cs @@ -203,7 +203,8 @@ namespace Microsoft.AspNetCore.Authentication.Tests.MicrosoftAccount displayName = "Test Name", givenName = "Test Given Name", surname = "Test Family Name", - mail = "Test email" + mail = "", + userPrincipalName = "Test email" }); }