堆栈Exchange OpenID支持哪些额外的值是什么?
-
11-12-2019 - |
题
我正在尝试获取username / display name
,但我不知道支持的值是什么。我得到了email
和realname
,但我不知道是什么返回username / display name
。
是有文件还是关于这个的东西?
我的当前代码:
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);
}
}
. 解决方案
你的箭头指向他们的箭头不是显示名称(StackId没有显示名称的概念,您的登录是您的电子邮件地址),而是一个可选的“虚荣ID”。
例如:
给了我一个 https://openid.stackexchange.com/kevin.montrose。这只是一个更容易记住别名的依赖派对,需要手动输入OpenID URL。
电子邮件和real name / full名称是stackid支持查询的唯一属性,并且将通过sreg或ax扩展(如代码)所示。
不隶属于 StackOverflow