Question

J'essaie d'obtenir le username / display name, mais je n'ai aucune idée des valeurs prises en charge.j'ai eu le email et realname, mais je ne sais pas ce qui renvoie le username / display name.

enter image description here

Y a-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);
    }
}
Était-ce utile?

La solution

Ce que votre flèche pointe vers ce n'est pas un nom d'affichage (StackID n'a aucune notion de noms d'affichage, votre identifiant est votre adresse e-mail) mais un "Vanity Id" facultatif.

Par exemple:

enter image description here

Cela me donne la vanité OpenID de https://openid.stackexchange.com/kevin.montrose .Il s'agit simplement d'un alias plus facile à retenir pour les parties de confiance qui nécessitent la saisie manuelle des URL OpenID.

L'e-mail et le nom réel/nom complet sont les seuls attributs pour lesquels StackID prend en charge les requêtes et renverront les deux via les extensions SREG ou AX (comme on le voit dans le code).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top