asp.net-mvc – ASP.Net MVC 5带范围的Google身份验证
|
我正在尝试让ASP.Net MVC 5 Google OAuth2身份验证正常运行. 当我在没有任何范围的情况下设置传入GoogleOauth2AuthenticationOptions时,我就能够成功登录. var googlePlusOptions = new GoogleOAuth2AuthenticationOptions
{
ClientId = googleClientId,ClientSecret = googleClientSecret,SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,Provider = new GoogleOAuth2AuthenticationProvider()
{
OnAuthenticated = async ctx =>
{
ctx.Identity.AddClaim(new Claim("urn:tokens:googleplus:accesstoken",ctx.AccessToken));
}
},};
app.UseGoogleAuthentication(googlePlusOptions);
然后,此调用将返回一个设置了所有属性的ExternalLoginInfo对象 ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 当我添加任何范围时,我没有得到任何返回的登录信息.它只是空的. var googlePlusOptions = new GoogleOAuth2AuthenticationOptions
{
ClientId = googleClientId,};
googlePlusOptions.Scope.Add(YouTubeService.Scope.Youtube);
app.UseGoogleAuthentication(googlePlusOptions);
然后调用获取外部信息只返回null. ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 在Google开发控制台中,我启用了以下API. > Analytics API 关于向选项添加范围的一些事情是打破GetExternalLoginInfoAsync. 解决方法如果有人仍然与最新的微软有这个问题OWIN中间件(3.0.0)…… 我注意到Fiddler默认情况下会将以下范围发送到accounts.google.com: scope=openid%20profile%20email 如果您通过GoogleOAuth2AuthenticationOptions.Scope.Add(…)添加自己的范围,则范围变为: scope=YOUR_SCOPES_ONLY 因此,您还需要添加默认范围(或者至少,这为我解决了问题): var googlePlusOptions = new GoogleOAuth2AuthenticationOptions {
...
};
// default scopes
googlePlusOptions.Scope.Add("openid");
googlePlusOptions.Scope.Add("profile");
googlePlusOptions.Scope.Add("email");
// additional scope(s)
googlePlusOptions.Scope.Add("https://www.googleapis.com/auth/youtube.readonly"); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ELMAH MVC 2 – Castle Windsor的问题
- ASP.NET C#,需要按两次按钮才能发生一些事情
- asp.net-core – 如何检索当前响应体长度?
- asp.net – 对于在Azure部署的Web.config中存储密码的正确程
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net-mvc – 在MVC ActionLink中使用Knockout绑定
- ASP.NET调试与IIS超时
- asp.net页面SqlCacheDependency缓存实例
- 使用ASP.NET WebForms的xVal示例?
- asp.net – 将Windows身份验证与表单身份验证混合使用
- asp.net – Url重写与路由
- Asp.NetCore1.1版本去掉project.json后如何打包生
- asp.net-mvc – 如何在MVC3中创建一个隐藏字段?
- asp.net-mvc – Razor视图没有布局
- 使用WCAT对ASP.NET / IIS进行压力测试
- asp.net – IIS Express全能子域名网址
- ASP.NET清空缓存时遇到的问题简析
- asp.net-mvc – ASP.NET MVC 3中的OutputCache行
- asp.net – 当使用AngularJS,WebAPI 2和Oauth 2时
- asp.net-mvc-4 – 升级到.NET 4.5和EF 5后,“启用
