1

Windows azure アプリケーションはフェデレーション認証を受け入れ、ユーザーは gmail、facebook、およびライブ ID のいずれかを使用してログインできます。ユーザーがログインしたら、ユーザー名や電子メールIDを具体的に取得するなどの情報を抽出するにはどうすればよいですか。?

4

1 に答える 1

2

電子メール アドレスは、ID プロバイダーからのクレームとして提示されます。

たとえば、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 ではメール アドレスやユーザー名はわかりません。

于 2011-12-01T07:41:10.027 に答える