Frage

Ich versuche das zu bekommen username / display name, aber ich habe keine Ahnung, was die unterstützten Werte sind.Ich habe die email und realname, aber ich weiß nicht, was das zurückgibt username / display name.

enter image description here

Gibt es eine Dokumentation oder etwas dazu?

Mein aktueller Code:

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);
    }
}
War es hilfreich?

Lösung

Worauf Ihr Pfeil zeigt, ist kein Anzeigename (StackID hat keine Ahnung von Anzeigenamen, Ihr Login ist Ihre E-Mail-Adresse), sondern eine optionale "Vanity ID".

Beispielsweise:

enter image description here

Gibt mir die Vanity OpenID von https://openid.stackexchange.com/kevin.montrose .Dies ist nur ein leichter zu merkender Alias für vertrauende Parteien, die eine manuelle Eingabe von OpenID-URLs erfordern.

E-Mail und richtiger Name / vollständiger Name sind die einzigen Attribute, nach denen StackID Abfragen unterstützt, und geben beide entweder über SREG- oder AX-Erweiterungen zurück (wie im Code zu sehen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top