在Web API Facebook登录中返回401
在社区中,我遵循了一个例子,说明了如何在我的web api上提供Facebook登录服务,但我无法让它工作。 . 我确实试过了,但仍然不起作用 嗯,在我的AccountController中,我有GetExternalLogin方法,行中:在Web API Facebook登录中返回401,facebook,login,asp.net-web-api,asp.net-web-api2,owin,Facebook,Login,Asp.net Web Api,Asp.net Web Api2,Owin,在社区中,我遵循了一个例子,说明了如何在我的web api上提供Facebook登录服务,但我无法让它工作。 . 我确实试过了,但仍然不起作用 嗯,在我的AccountController中,我有GetExternalLogin方法,行中: if (!User.Identity.IsAuthenticated) { return new ChallengeResult(provider, this); } 该方法返回错误401。我以前不使用
if (!User.Identity.IsAuthenticated)
{
return new ChallengeResult(provider, this);
}
该方法返回错误401。我以前不使用OWIN,但我希望在方法中调用Facebook登录API。这不需要调用Facebook登录页面,只需返回401即可
我复制了所有的示例代码,但没有工作。我该怎么办
ChallengeResult中的代码:
public class ChallengeResult : IHttpActionResult
{
public string LoginProvider { get; set; }
public HttpRequestMessage Request { get; set; }
public ChallengeResult(string loginProvider, ApiController controller)
{
LoginProvider = loginProvider;
Request = controller.Request;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
Request.GetOwinContext().Authentication.Challenge(LoginProvider);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
response.RequestMessage = Request;
return Task.FromResult(response);
}
}
public类ChallengeResult:IHttpActionResult
{
公共字符串登录提供程序{get;set;}
公共HttpRequestMessage请求{get;set;}
public ChallengeResult(字符串登录提供程序、ApiController控制器)
{
LoginProvider=LoginProvider;
请求=控制器。请求;
}
公共任务执行同步(CancellationToken CancellationToken)
{
Request.GetOwinContext().Authentication.Challenge(LoginProvider);
HttpResponseMessage response=新的HttpResponseMessage(HttpStatusCode.Unauthorized);
response.RequestMessage=请求;
返回Task.FromResult(响应);
}
}
对不起,我对奥文一无所知。我将了解返回401(未经授权)是正确的。这是外部登录提供商(在您的例子中是Facebook)用来知道必须显示登录页面的内容
如我所见,您已经在学习教程,但可能可以帮助您了解外部提供者的身份验证和授权过程。本教程介绍了如何使用Google和Facebook进行授权,但在您的情况下,您可以跳过Google部分
我希望这有帮助 碰到同样的问题,烧掉同样的神经元。在失去足够的大脑质量后,我在我的案例中找到了原因:在查询字符串中,我用一个小f写了Facebook。当我把它改成大写字母F时,它开始工作了
希望这有帮助。嗨!所以,我尝试了你发给我的教程,在我尝试之前,我现在正在编写的教程,但这也不起作用。返回的应该是登录facebook的链接,而不仅仅是401错误,不是吗?如果是我在问题中引用的这段话,然后死在那里,我该如何编码重定向到facebook?嗨!我也遇到过同样的行为,但只有在facebook上,twitter运行良好,你解决了吗?