When accessing the email claims using OWIN and a Microsoft Account, you might encounter situations where your application does not receive a email claim, when you expect. We’ve experienced this issue most commonly with hotmail.com and outlook.com logins. Note below where the email claim is not completed in the left screen (a hotmail.com account) but is available for my kloud.com.au email address.

In this situation, there is a bug in the Owin Microsoft Account identity provider where a value isn’t correctly being checked for null. You can see the detail here: https://github.com/aspnet/AspNetKatana/issues/107.

This bug will be fixed in the 4.0.0 version of the Microsoft.Owin.Security.MicrosoftAccount nuget package, but if you need to use it now, you may add a new class called “MSProvider” to your project, and include it as part of your configuration options for your MicrosoftAccountAuthentication:

This will then solve your issue, and your claims will now always return email addresses.

Show me the code!

The code for this demo is hosted on github: https://github.com/bsmithb2/MicrosoftAccountEmailIssue. You will need to create a Converged App in the Microsoft portal (https://apps.dev.microsoft.com/#/appList) and then add the Client Id and Secret to your Microsoft Account configuration above. You’ll also need to add a “Web Platform” about halfway down with these details and then save:

microsoft account.PNG



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: