gpt4 book ai didi

c# - 使用 Salesforce 的 MVC OAuth 身份验证返回登录页面

转载 作者:可可西里 更新时间:2023-11-01 09:13:34 33 4
gpt4 key购买 nike

我正在尝试获取一个工作示例,该示例使用他们的 OAuth 身份验证工作流程针对 Salesforce 对 .NET 中的 MVC 应用程序进行身份验证。我一直在引用 this walkthrough这很简单。这与让 Google 身份验证起作用非常相似。它归结为使用个人帐户身份验证模板设置 .NET MVC 项目,并在 Salesforce 中启动一个新的连接应用程序。然后,为 Salesforce 添加 Owin.Security.Providers 库,稍微调整 Startup.Auth.cs 并包含 ClientIdClientSecret 来自 Salesforce 应用程序,以及授权和 token 端点。它建议的回调 URL 是 http://localhost:[port]/signin-salesforce这与用于 Google 身份验证的回调 URL 非常相似。

虽然我被重定向到 Salesforce 并且可以登录,但将我返回到我的 MVC 应用程序的握手似乎遇到了一个我无法确定的问题。我被重定向回登录页面,.NET 似乎不知道我的登录信息,尽管我肯定与 Salesforce 有一个活跃的 session (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

请注意 Location header ,它告诉 .NET 使用错误参数“access_denied”重定向到 /Account/ExternalLoginCallback。在 Owin 中启用一些跟踪显示 某物 在 .NET 或 .NET 中返回 400,但我不知道是什么

所以,这就是我所在的位置。我的 Controller 中的 null loginInfo 对象以及某些 Web 请求中出现问题的证据。我仔细阅读了其他几个相关问题,但几乎没有一个关注 SalesForce,而且它们提供的答案并不真正适用(例如,我没有要启用的 Google+ API)。关于如何纠正此问题的任何想法?

最佳答案

看起来重定向 URI 需要匹配身份服务器上的 URI。当您再次被重定向到登录页面时,看起来重定向 URI 可能与客户端密码和客户端 ID 不匹配。

在 SalesForce Identity 服务器中,将有一个重定向 URI,它将决定身份验证完成后您将被重定向到的路径。有时您还必须提供带有客户端 ID 和密码的 URI 才能获得完全授权。

关于c# - 使用 Salesforce 的 MVC OAuth 身份验证返回登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37356761/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com