Quali valori extra supportano il supporto OpenID Stack?
-
11-12-2019 - |
Domanda
Sto cercando di ottenere il username / display name
, ma non ho idea di quali sono i valori supportati.Ho ottenuto il email
e realname
, ma non so cosa restituisca il username / display name
.
C'è una documentazione o qualcosa su questo?
Il mio codice corrente:
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);
}
}
. Soluzione
Qual è la tua freccia che punta al loro non è un nome di visualizzazione (StackID non ha nozione di nomi di visualizzazione, il tuo login è il tuo indirizzo email) ma un "ID Vanity ID" opzionale.
Ad esempio:
mi dà la vanità OpenID di https://openid.stackexchange.com/kevin.montroseetry/A>.Questo è solo un alias più facile da ricordare per affidarsi alle parti che richiedono l'ingresso manuale di URL OpenID.
Email e nome reale / nome completo sono gli unici attributi impilabili supportano la interrogazione e ritornano sia tramite le estensioni SREG o AX ( Come visto nel codice ).