c# - 如何通过 Google 使用 DotNetOpenAuth 获取用户名

标签 c# asp.net-mvc dotnetopenauth

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

switch (response.Status)
    case AuthenticationStatus.Authenticated:
        string userOpenId = response.FriendlyIdentifierForDisplay;
        break;
(...)

最佳答案

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

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

关于c# - 如何通过 Google 使用 DotNetOpenAuth 获取用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683725/

相关文章:

c# - 仅支持初始值设定项、实体成员和实体导航属性。 (ASP.NET MVC 和 Entity Framework )

c# - Controller 中 id 的值始终相同

asp.net-mvc - ASP.NET MVC : Redirecting from one view to another

c# - 使用 DotNetOpenAuth 刷新授权后收到的新 RefreshToken 如何处理

c# - 从另一个线程或技巧访问 HttpSessionState (HttpContext.Current.Session)?

c# - .netcore 2.2 Httpcontext 没有 SignInAsync

c# - xmlserializer 没有正确反序列化模式与导入

c# - 以编程方式添加端点 header 安全性 WCF

c# - 使用 Asp.net 4.0 实现 OAuth2

asp.net-mvc-2 - 如何让 DotNetOpenAuth 打开弹出窗口进行身份验证?