알아 냈습니다. Goolge's Federated Log API group에 질문을 올렸으며 Attribute exchange을 사용하라고 들었습니다.
아래 코드는 DotNetOpenAuth의 코드입니다.
프로덕션 환경에서이 코드를 사용하지 마십시오. 이것은 단지 설명을위한 것입니다!
요청 :
using (OpenIdRelyingParty openid = new OpenIdRelyingParty())
{
IAuthenticationRequest request = openid.CreateRequest(openidurl);
var fetch = new FetchRequest();
fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
request.AddExtension(fetch);
// Send your visitor to their Provider for authentication.
request.RedirectToProvider();
}
답변서 : 나는 응답이 null의 전체 이름을 얻으려고 할 때, 이름을 얻을 수있는 솔루션을 제공하십시오
OpenIdRelyingParty openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
if (response != null)
{
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
{
var fetch = response.GetExtension<FetchResponse>();
string email = string.Empty();
if (fetch != null)
{
email = fetch.GetAttributeValue(
WellKnownAttributes.Contact.Email);
}
FormsAuthentication.RedirectFromLoginPage(
response.ClaimedIdentifier, false);
break;
}
...
}
}
이 중대하다. 응답을 분석하는 것 이외에도 공급자 이름을 얻는 방법을 알고 있습니까? –
청구 된 ID를 의미합니까? 사례 AuthenticationStatus.Authenticated : { 문자열 식별자 = 응답. 요청 된 식별자; } – Rob
나는 그가 공급자의 실제적인 친숙한 이름에 대해 이야기하고 있었다고 생각한다. 즉, "Google" "Facebook"이 응답을 분석해야한다. – Brian