4

我正在开发一个 ColdFusion 应用程序,该应用程序对 SharePoint Online 进行身份验证并使用 SharePoint 的 REST API 提取一些文件,如http://paulryan.com.au/2014/spo-remote-authentication-rest/中所述

当我尝试通过发布到 _api/contextinfo 来获取 FormDigestValue 时,如果我将cfhttpparam类型设置为 cookie,我会得到 403 禁止,但如果我将 cookie 作为标题传递,一切正常,但我不明白为什么。

<cfhttpparam
    type="header"
    name="cookie"
    value="rtFa=#rtFa#;FedAuth=#FedAuth#"    
  />

工作但

<cfhttpparam
    type="cookie"
    name="rtFa"
    value="#rtFa#"    
/> 
<cfhttpparam
    type="cookie"
    name="FedAuth"
    value="#FedAuth#"    
/> 

失败

4

1 回答 1

3

查看正在发生的事情的最佳方法是检查流量并查看正在发生的事情。除此之外,我知道使用header类型和标签cookie类型之间的区别在于cfhttpparamURL 编码。

当您使用该header类型时,该值不是URL 编码的。

当您使用该cookie类型时,该值URL 编码的。

所以我的猜测是他们的 API 不喜欢值是 URL 编码的。

cfhttpparam 属性的文档参考

于 2017-12-01T15:32:11.857 回答