Как получить такую информацию, как адрес электронной почты зарегистрированного пользователя с помощью федеративной аутентификации в приложении win azure
Приложение Windows Azure принимает федеративную аутентификацию, при которой пользователь может войти в систему, используя любой из Gmail, Facebook и Live ID. Как только пользователь вошел в систему, как можно извлечь информацию, такую как получение имени пользователя и идентификатора электронной почты, в частности.?
1 ответ
Адрес электронной почты представлен как претензия от провайдера идентификации.
Если вы используете MVC (например), простой способ прочитать адрес электронной почты - добавить некоторые свойства в ваш контроллер, например так:
public ClaimsPrincipal ClaimsPrincipal
{
get
{
return this.User as ClaimsPrincipal;
}
}
public ClaimsIdentity ClaimsIdentity
{
get
{
return this.ClaimsPrincipal.Identity as ClaimsIdentity;
}
}
public string UserEmailAddress
{
get
{
foreach (var claim in this.ClaimsIdentity.Claims)
{
if (claim.ClaimType == @"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")
{
return claim.Value;
}
}
return null;
}
}
Однако Live ID не даст вам адрес электронной почты или имя пользователя.