加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:10:32 所属栏目:asp.Net 来源:网络整理
导读:再一次我被卡住了!我正在尝试使用个人帐户实现具有ASP.NET身份的安全WebApi服务. WebApi服务将被手机应用程序开发的手机应用程序消耗.我的phonegap应用程序使用Facebook和Twitter进行登录,我已经在客户端上实现了这一点. 我已经创建了一个视觉工作室模板的S
再一次我被卡住了!我正在尝试使用个人帐户实现具有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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读