2 votes

Quelles sont les valeurs supplémentaires prises en charge par Stack Exchange OpenID ?

J'essaie d'obtenir le username / display name mais je n'ai aucune idée des valeurs prises en charge. J'ai obtenu le résultat suivant email y realname mais je ne sais pas ce que renvoie la fonction username / display name .

enter image description here

Existe-t-il une documentation ou quelque chose à ce sujet ?

Mon code actuel :

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);
    }
}

3voto

Kevin Montrose Points 11936

Ce que votre flèche indique n'est pas un nom d'affichage (StackID n'a pas de notion de nom d'affichage, votre login est votre adresse email) mais un "Vanity Id" optionnel.

Par exemple :

enter image description here

Me donne l'OpenID de vanité de https://openid.stackexchange.com/kevin.montrose . Il s'agit simplement d'un alias plus facile à retenir pour les parties utilisatrices qui doivent saisir manuellement les urls OpenID.

L'adresse électronique et le nom réel/nom complet sont les seuls attributs que StackID peut interroger, et ils sont renvoyés par les extensions SREG ou AX ( comme le montre le code ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X