gpt4 book ai didi

gmail - 通过 DotNetOpenId 检索 GMail 数据

转载 作者:行者123 更新时间:2023-12-04 19:32:17 24 4
gpt4 key购买 nike

我正在尝试使用 dotNetOpenId 登录 GMail 帐户。它有效,但我无法检索任何声明。我知道我也可以检索电子邮件地址或用户名,但没有任何声明被返回,只有 ClaimedIdentifier 可用。有人知道如何从 Gmail 帐户中检索这些数据吗?如果您可以为我提供 ClaimsRequest 配置的示例,我将不胜感激。

谢谢

最佳答案

// Either you're creating this already or you can get to it in 
// the LoggingIn event of the control you're using.

IAuthenticationRequest request;

// Add the AX request that says Email address is required.
var fetch = new FetchRequest();
fetch.Attributes.Add(
new AttributeRequest(WellKnownAttributes.Contact.Email, true));
request.AddExtension(fetch);

然后 Google 对用户进行身份验证并返回电子邮件地址,您可以通过以下方式获取:
var fetch = openid.Response.GetExtension<FetchResponse>();  
if (fetch != null)
{
IList<string> emailAddresses = fetch.GetAttribute(
WellKnownAttributes.Contact.Email).Values;
string email = emailAddresses.Count > 0 ? emailAddresses[0] : null;
}

你可以看到 my blog post关于这个主题的更多信息。这里要注意的重要一点是,如果您将用户的电子邮件地址标记为需要(正如我在上面的代码段中所做的那样),Google 只会告诉您用户的电子邮件地址。但这也意味着,如果用户不想共享他的电子邮件地址,则他根本无法登录。抱歉,Google 就是这样设置的。不幸的是,人们使用的其他提供者有不同的行为。

关于gmail - 通过 DotNetOpenId 检索 GMail 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com