首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET Web API Authentication.GetExternalLoginInfoAsync始终返回null

ASP.NET Web API Authentication.GetExternalLoginInfoAsync始终返回null
EN

Stack Overflow用户
提问于 2018-05-30 20:12:52
回答 3查看 625关注 0票数 13

我有ASP.NET 5项目,我正在使用网络应用程序接口来建立外部登录(脸书和谷歌)。在我的例子中,我有Web API控制器(不是MVC控制器),它包含以下代码:

[OverrideAuthentication]
[HostAuthentication(DefaultAuthenticationTypes.ExternalCookie)]
[AllowAnonymous]
[Route("ExternalLogin", Name = "ExternalLogin")]
public async Task<IHttpActionResult> GetExternalLogin(string provider, string error = null)
{
    if (error != null)
        return Redirect(Url.Content("~/") + "#error=" + Uri.EscapeDataString(error));

    if (!User.Identity.IsAuthenticated)
        return new ChallengeResult(provider, this);

    var exLog = await Authentication.GetExternalLoginInfoAsync();

当移动应用程序调用此方法时,我得到了正确的请求身份验证,属性User.Identity.IsAuthenticated为真,我可以在调试器中看到,用户是正确的,但问题是exlog变量总是为空。

下面是Authentication属性

private IAuthenticationManager Authentication => this.Request.GetOwinContext().Authentication;

我阅读了堆栈上关于这个bug的所有问题,但没有任何问题对我有帮助,大多数问题都是针对MVC控制器的,所以没有帮助。

例如,this question并没有帮助我,因为它是针对MVC的。

我使用的是Owin 4.0的更新

EN

回答 3

Stack Overflow用户

发布于 2021-02-28 11:52:18

感谢所有在评论中让我写下我的答案的人。

其实这个问题还没有解决,我也没有找到解决这个问题的办法,

我很抱歉这么说。

我发现我不需要从一开始就调用这个方法。

我走了一条完全不同的路(我不记得是怎么走的,为什么走的)

只有一个小建议:再次考虑这种情况,并重新考虑是否真的需要调用此方法。

我真希望我能帮上忙,我很抱歉。

票数 0
EN

Stack Overflow用户

发布于 2018-06-08 04:59:54

你得到了"NULL“,因为你没有写代码,如果IsAuthenticated = true,那么它应该做什么?(表示重定向到任何页面或其他页面)。

仔细查看IsAuthenticated: if (!User.Identity.IsAuthenticated)的if条件

这可能会对你有所帮助。

票数 -1
EN

Stack Overflow用户

发布于 2020-01-10 22:26:13

尝试在Google控制台中启用Google + API。还要确保在将密钥粘贴到代码后,密钥不会与末尾的空格连接。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50604415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档