Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用DotNetOpenAuth和Google获取用户名_C#_Asp.net Mvc_Dotnetopenauth - Fatal编程技术网

C# 如何使用DotNetOpenAuth和Google获取用户名

C# 如何使用DotNetOpenAuth和Google获取用户名,c#,asp.net-mvc,dotnetopenauth,C#,Asp.net Mvc,Dotnetopenauth,我有一个ASP.NET MVC项目,它使用DotNetOpenAuth作为身份验证提供程序。当用户使用登录时,如何获取用户名(或电子邮件地址) 我希望您的userOpenId局部变量不是用于用户名的变量,因为您从中分配它的属性名称恰当,因此它仅用于显示。您应该只对用户名使用iaAuthenticationResponse.ClaimedIdentifier 除此之外,您可以通过发送标记为必需属性的电子邮件获取请求来获取Google电子邮件地址(您永远无法获取用户名)。例如,这已经被问过很多次了。

我有一个ASP.NET MVC项目,它使用DotNetOpenAuth作为身份验证提供程序。当用户使用登录时,如何获取用户名(或电子邮件地址)


我希望您的
userOpenId
局部变量不是用于用户名的变量,因为您从中分配它的属性名称恰当,因此它仅用于显示。您应该只对用户名使用
iaAuthenticationResponse.ClaimedIdentifier


除此之外,您可以通过发送标记为必需属性的电子邮件获取请求来获取Google电子邮件地址(您永远无法获取用户名)。例如,这已经被问过很多次了。

这可能是一个新手问题,安德鲁·阿诺特,但为什么你能得到谷歌的电子邮件地址而不是用户名(有什么区别?)我认为它们是一回事。我不确定谷歌的用户名和电子邮件地址是否有区别。但是我认为用户可以在他们的Google帐户上更改他们的主要电子邮件地址(特别是如果它没有链接到Gmail帐户),如果你一直像使用用户名一样使用Google电子邮件地址,那么用户将无法使用你的web应用程序访问他们的帐户。这只是使用协议所需的用户标识符(声明的用户id)如此重要的原因之一。
switch (response.Status)
    case AuthenticationStatus.Authenticated:
        string userOpenId = response.FriendlyIdentifierForDisplay;
        break;
(...)