- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试获取一个工作示例,该示例使用他们的 OAuth
身份验证工作流程针对 Salesforce 对 .NET 中的 MVC 应用程序进行身份验证。我一直在引用 this walkthrough这很简单。这与让 Google 身份验证起作用非常相似。它归结为使用个人帐户身份验证模板设置 .NET MVC 项目,并在 Salesforce 中启动一个新的连接应用程序。然后,为 Salesforce 添加 Owin.Security.Providers
库,稍微调整 Startup.Auth.cs 并包含 ClientId
和 ClientSecret
来自 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/
我从下面的代码行收到错误“错误错误:AddIMRConroller 编译错误:字段表达式的初始术语必须是具体的 SObject:第 21 行第 23 列的列表”。 string[] str1 = im
Salesforce 支持不同的沙箱。 例如“部分”或“开发”沙箱。 有没有办法检测我的脚本连接到哪种沙箱? 我使用 Python 和 simple_salesforce。 最佳答案 我的 Pytho
下面一行在 salesforce 中给出了“FIELD_INTEGRITY_EXCEPTION”。请为此提供替代方案。 imr.Assigned_DTM__c = DateTime.valueOfGm
下面一行在 salesforce 中给出了“FIELD_INTEGRITY_EXCEPTION”。请为此提供替代方案。 imr.Assigned_DTM__c = DateTime.valueOfGm
我正在尝试实现批处理。我需要一些关于如何测试的帮助/指导。我在这里所做的只是在调试日志中显示机会名称。但是当我在 Apex 测试执行中运行 scheduleBatchable 类时,它也有测试类。未显
我在 salesforce 中创建了一个包,它将使用用户的电子邮件 ID 发出 http 标注请求以获取该电子邮件的数据并将数据添加到某个自定义对象。但是当我尝试使用 UserInfo.getUser
我正在尝试将 Salesforce 数据加载到 Python 数据框中,以便我们可以在那里进行所有操作。 simple_salesforce 处理了我们达到 2,000 限制的警告: from sim
我在 Salesforce 托管包中编写了一个 Apex 类,它使用 apex-lang 的托管版本。库包: global class MySorter implements al.Objectcom
我已经开始使用现有的应用程序,并且代码的唯一副本在 SalesForce 中。我如何备份(导出)它,以便在我弄得一团糟时可以回滚到这个原始代码? 最佳答案 有几个选项可以备份或添加版本控制到您的 Sa
Salesforce 向我抛出了一条新的错误消息,到目前为止我还没有在文档中找到任何有用的信息。我试图在 Controller 扩展中保存一个对象,它实际上保存了记录,但它没有返回到我指示的页面,而是
我需要防止输入重复名称。需要使用触发器来施加此限制。我想知道如何限制 DML 操作的发生。不确定 .addError 在批量代码中的用法。 Set Seta= new Set(); for(oj_
我正在尝试通过创建一个触发器来解决基于“邮箱已满”的邮件退回问题,该触发器在邮件包含“邮箱已满”时重新发送邮件。 我面临的问题是我需要将重新发送的次数限制为 3 次。 一旦收到退回的电子邮件,我现在就
salesforce.com 中单个自定义对象中的最大记录数是多少? https://login.salesforce.com/help/doc/en/limits.htm 中似乎没有指出限制 当然,
是否可以为具有配置文件的用户使用共享规则。如果用户有配置文件,它们有什么用吗?或者配置文件是否完全覆盖了记录访问权限,这样我就可以忘记共享规则? 我的情况是我的所有用户都有个人资料。我想做的是将某些记
自从我不得不进行 S2S 集成以来,已经发布了几个版本,但我遇到了一个意想不到的问题,希望有人能更有效地解决这个问题。 我有两个组织,通过 S2S 共享联系人。 每个组织中的联系人都具有相同的架构,即
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 去年关闭。 社区在 3 个月前审查了是否重新
我正在查看SOQL文档,但找不到查询来获取实体的所有字段数据,例如Account,例如 select * from Account [ SQL syntax ] SOQL中是否有类似上面的语法来提取a
我正在尝试通过允许指定无效电子邮件地址的其他服务将电子邮件地址存储在 Salesforce.com 中。如果这些错误的无效电子邮件地址之一通过其 Web 服务 API 发送到 Salesforce.c
我想获取安装在 salesforce 组织中的所有包的命名空间前缀。我该怎么做? 最佳答案 一种相当简单的方法是查询 ApexClass 对象并获取不同的 NamespacePrefix 值。 Sel
你好, 好吧,我很困惑。我的任务是更新一个 PHP 脚本,该脚本使用 BulkAPI 将一些数据 upsert 到 Opportunity 实体中。 这一切都很顺利,只是 Bulk API 为一些明确
我是一名优秀的程序员,十分优秀!