как получить такую ​​информацию, как адрес электронной почты зарегистрированного пользователя, используя федеративную аутентификацию в приложении win azure - PullRequest
1 голос
/ 30 ноября 2011

Приложение Windows Azure принимает федеративную аутентификацию, при которой пользователь может войти в систему, используя любой из Gmail, Facebook и Live ID. Как только пользователь вошел в систему, как можно извлечь информацию, такую ​​как получение имени пользователя и идентификатора электронной почты, в частности. ?

1 Ответ

2 голосов
/ 01 декабря 2011

Адрес электронной почты представляется как претензия от поставщика удостоверений.

Если вы используете, например, 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 не даст вам адрес электронной почты или имя пользователя.

...