虽然我被重定向到Salesforce并且可以登录,但是让我回到我的MVC应用程序的握手似乎遇到了一个我无法确定的问题.我被重定向回登录页面,而.NET似乎并不知道我的登录信息,虽然我绝对有一个与Salesforce的活动会话(Salesforce仪表板将自动登录我).在代码中,事情在这里开始走向一边:
// GET: /Account/ExternalLoginCallback [AllowAnonymous] public async Task<ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } //more code we never reach }
loginInfo始终为空.所以,为了弄清楚哪些请求被发送到.NET,我转向Fiddler,并遇到一个对localhost:[port] / signin-salesforce的请求,一些参数会得到一个好奇的响应:
HTTP/1.1 302 Found
Location: /Account/ExternalLoginCallback?error=access_denied
Server: Microsoft-IIS/10.0
Set-Cookie: .AspNet.Correlation.Salesforce=; path=/; expires=Thu,01-Jan-1970 00:00:00 GMT
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcc3RldmUuY2FtaXJlXGRvY3VtZW50c1x2aXN1YWwgc3R1ZGlvIDIwMTVcUHJvamVjdHNcU2FsZXNGb3JjZUludGVncmF0aW9uXFNhbGVzRm9yY2VJbnRlZ3JhdGlvblxzaWduaW4tc2FsZXNmb3JjZQ==?=
X-Powered-By: ASP.NET
Date: Fri,20 May 2016 21:46:09 GMT
Content-Length: 0
注意位置标题,它告诉.NET重定向到/ Account / ExternalLoginCallback,错误参数为“access_denied”.在Owin中启用一些跟踪显示有些东西在.NET或.NET中返回400,但是我不知道什么.
所以,那就是我在哪里.在我的控制器中的一个空的loginInfo对象,并证明某些Web请求出现问题.我已经发现了其他几个相关问题,但几乎没有人关注SalesForce,他们提供的答案并不真正适用(例如,我没有Google API可以启用).有什么想法如何纠正这个?
解决方法
在SalesForce身份服务器中,将有一个重定向URI,它将决定一旦认证完成后您将被重定向的路径.有时您还必须提供URI与客户端ID和秘密,以获得完全授权.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。