我想在webforms项目中创建一个按钮,将我重定向到谷歌登录。用户登录后,我想从他的个人资料中获取一些基本数据,如电子邮件和姓名。
我试过[Nemiro] [1]
[1]:asp.net webforms google login但我遇到问题(即使是返回错误401的默认示例)。
我试过这个
var credentials =
GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = "client-Id", ClientSecret = "client-secret" },
new[] { "openid", "email" }, "user", CancellationToken.None,null);
它有效,但仅适用于localhost。我不知道如何更改重定向uri,因此,当我将其上传到服务器上时,我认为它不会起作用。
另外,在youtube上我看到他们连接到谷歌和IAppBuilder,但我不能在我的项目中使用它。
答案 0 :(得分:0)
您可能希望从此站点中删除您的clientid和secret,也可以在您的应用程序中删除。以下解决方案适合我:
var googleoptions = new GoogleOAuth2AuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings["gid"],
ClientSecret = ConfigurationManager.AppSettings["gsecret"]
};
googleoptions.Scope.Add("https://www.googleapis.com/auth/plus.me");
googleoptions.Scope.Add("https://www.googleapis.com/auth/plus.login");
googleoptions.Scope.Add("https://www.googleapis.com/auth/userinfo.email");
googleoptions.Scope.Add("https://www.googleapis.com/auth/userinfo.profile");
app.UseGoogleAuthentication(googleoptions);
不要忘记将您的身份和秘密存储在appsettings中。
要使其在除localhost之外的其他位置上运行,您需要将该网址添加到Developersconsole of google
列表中