2012-09-29 1 views
2

username/display name을 얻으려고하고 있지만 지원되는 값이 무엇인지 알 수 없습니다. 내가 emailrealname을 가지고 있지만, 무엇이 username/display name을 반환하는지 모르겠습니다.Stack Exchange OpenID는 어떤 추가 값을 지원합니까?

enter image description here

이것에 대해 문서 또는 뭔가가 있나요?

내 현재 코드 : 표시 이름들이 아닙니다에 당신의 화살표가 가리키는 무엇

public class StackExchangeOpenID : OpenIdClient 
{ 
    public StackExchangeOpenID() 
     : base("stackexchange", "https://openid.stackexchange.com") 
    { 

    } 

    protected override Dictionary<string, string> GetExtraData(IAuthenticationResponse response) 
    { 
     FetchResponse fetchResponse = response.GetExtension<FetchResponse>(); 
     if (fetchResponse != null) 
     { 
      var extraData = new Dictionary<string, string>(); 
      extraData.Add("email", fetchResponse.GetAttributeValue(WellKnownAttributes.Contact.Email)); 
      extraData.Add("name", fetchResponse.GetAttributeValue(WellKnownAttributes.Name.FullName)); 

      // returned value: null 
      //extraData.Add("username", fetchResponse.GetAttributeValue(WellKnownAttributes.Name.Alias)); 

      return extraData; 
     } 

     return null; 
    } 
    protected override void OnBeforeSendingAuthenticationRequest(IAuthenticationRequest request) 
    { 
     var fetchRequest = new FetchRequest(); 
     fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email); 
     fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.FullName); 

     // returned value: null 
     //fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.Alias); 

     request.AddExtension(fetchRequest); 
    } 
} 
+0

시도해 본 결과 두 줄이 주석 처리 되었습니까? – BoltClock

+0

@BoltClock 예. 그것은'null'을 반환합니다. – BrunoLM

답변

3

는하지만 옵션 "허영 아이디 (StackID가 표시 이름의 아무 개념이없는, 로그인 이메일 주소입니다) ". 예를 들어

:

enter image description here

나에게 https://openid.stackexchange.com/kevin.montrose의 허영 오픈 ID를 제공합니다. 이것은 OpenID URL을 수동으로 입력해야하는 신뢰 당사자의 별칭을 기억하기 쉽습니다.

StackID는 쿼리를 지원하며 SREG 또는 AX 확장 (as seen in the code)을 통해 반환합니다.