Pregunta

Estoy tratando de conseguir el username / display name, pero no tengo idea de cuáles son los valores admitidos.tengo el email y realname, pero no sé qué devuelve el username / display name.

enter image description here

¿Existe alguna documentación o algo sobre esto?

Mi código actual:

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);
    }
}
¿Fue útil?

Solución

Lo que apunta su flecha no es un nombre para mostrar (StackID no tiene noción de nombres para mostrar, su inicio de sesión es su dirección de correo electrónico) sino un "ID personalizado" opcional.

Por ejemplo:

enter image description here

Me da el vanity OpenID de https://openid.stackexchange.com/kevin.montrose .Este es simplemente un alias más fácil de recordar para las partes de confianza que requieren la entrada manual de URL de OpenID.

Correo electrónico y Nombre real/Nombre completo son los únicos atributos que StackID admite consultas y devolverá ambos a través de extensiones SREG o AX (como se ve en el código).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top