微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-4 – 使用WebApi和外部登录的ASP.NET身份

再一次我被卡住了!我正在尝试使用个人帐户实现具有ASP.NET身份的安全WebApi服务. WebApi服务将被手机应用程序开发的手机应用程序消耗.我的phonegap应用程序使用Facebook和Twitter进行登录,我已经在客户端上实现了这一点.

我已经创建了一个视觉工作室模板的SPA项目,我已经测试了使用fiddler和chrome开发工具监视HTTP请求的登录过程.我已经使用邮递员尝试了以下请求

GET:http:// localhost:49577 / api / Account / ExternalLogins?returnUrl = /& generateState = true

响应:

[{
        "Name": "Facebook","Url": "/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49577%2F&state=jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01","State": "jpePf27F3ufkCCEldFdoOVHSGBGTEO1CrRdUQ3bHEP01"
}]

然后我打电话
GET:http:// localhost:49577 / api / Account / ExternalLogin?provider = Facebook& response_type = token& client_id = self& redirect_uri = http:// localhost:49577 /& state = jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01
调用AccountsController的GetExternalLogin方法.然后,当用户未通过身份验证时,它返回一个ChallengeResult的实例.

这是我卡住的地方
Q1:ChallengeResult强制使用一些查询字符串参数将301重定向到facebook登录页面.我不想要这个,我想让它给我参数,但让我处理我的ajax请求中的日志记录.我试过评论这行代码

Request.GetowinContext().Authentication.Challenge(LoginProvider);

但是我最终没有得到一个401,我如何控制ChallegeResult的响应?

Q2.另外,我不清楚下面这个什么,在我从Facebook获取访问令牌之后,如果我已经获得了访问令牌,那么我应该调用哪个webapi终点呢?

我一整天都已经google了,但我找不到任何回答我问题的东西.任何帮助将不胜感激.
谢谢

更新:

关于Q2我已经弄清楚下一步,那就是
GET:http:// localhost:49164 / signin-facebook?code = …& state = …

这返回另一个302重定向

http://localhost:49164/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49164%2F&state=7oGPd37EA-nmtXPtYEQ40qnretDeKjbPEM1gNkb2DuM1

这又返回另一个302,然后重定向

http://localhost:49164/#access_token=...

那么如何处理来自移动非浏览器客户端的所有重定向

UPDATE

我正在尝试找到处理控制器的操作
?HTTP://本地主机:49164 /登入Facebook的代码= …&安培;状态= …
谁能帮忙?

UPDATE
我已经发布了这个问题,学到了很多关于facebool登录流程,这也许我应该已经做了!
我还有一个问题,但我创造了a different question for that here,以防止混乱

解决方法

这个问题的答案是非常详细的.所以为了更容易,我将指出一个示例,它向您展示如何使用SPA应用程序并连接不同的客户端(手机,平板电脑等)并使用Facebook等社交登录名进行登录
https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/Todo/ReadMe.txt

原文地址:https://www.jb51.cc/aspnet/246210.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐