C# Yammer API交替响应302和404

C# Yammer API交替响应302和404,c#,html,oauth-2.0,sharepoint-2013,yammer,C#,Html,Oauth 2.0,Sharepoint 2013,Yammer,我通过.NET编程信任我的yammer应用程序。在调试信任应用程序的POST请求时,当响应试图重定向到SharePoint MySite主机时,响应似乎可以任意呈现302或404 如果我在同一个调试会话中循环我的请求,我会得到相同类型的响应。我必须重新启动调试才能有机会得到不同的响应。我试着设置一分钟的睡眠时间,以确保时间与我得到的反应类型无关。同样的规则似乎也适用:一个调试会话,一个响应类型 我现在的问题是:我需要做什么来避免这些404 以下是小提琴手的回答: 302答复: POST http

我通过.NET编程信任我的yammer应用程序。在调试信任应用程序的POST请求时,当响应试图重定向到SharePoint MySite主机时,响应似乎可以任意呈现302或404

如果我在同一个调试会话中循环我的请求,我会得到相同类型的响应。我必须重新启动调试才能有机会得到不同的响应。我试着设置一分钟的睡眠时间,以确保时间与我得到的反应类型无关。同样的规则似乎也适用:一个调试会话,一个响应类型

我现在的问题是:我需要做什么来避免这些404

以下是小提琴手的回答:

302答复:

POST https://www.yammer.com/MYNETWORK/oauth2/decision?client_id=MYAPPCODE&redirect_uri=http%3a%2f%2fmy.devmachine.contoso.com&response_type=code HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.yammer.com
Cookie: yamtrak_id=[GUID]; _workfeed_session_id=[ID]    Content-Length: 90
Expect: 100-continue

utf8=%E2%9C%93&authenticity_token=[TOKEN]=&allow=Allow
HTTP/1.1 302 Found
Server: nginx
Date: Mon, 29 Sep 2014 13:21:51 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Status: 302 Found
Location: http://my.devmachine.contoso.com?code=[CODE]    X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: SAMEORIGIN
Cache-Control: no-cache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
X-UA-Compatible: IE=Edge,chrome=1
Set-Cookie: yamtrak_id=[ID]; path=/; expires=Tue, 29-Sep-2015 13:21:51 GMT; secure; HttpOnly
Set-Cookie: auth_token=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT; secure
Set-Cookie: auth_token_sso=; domain=yammer.com; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT; secure
X-Date: 1411996911966
X-Runtime: 0.073263

7e
<html><body>You are being <a href="http://my.devmachine.contoso.com?code=[CODE]">redirected</a>.</body></html>
0
POSThttps://www.yammer.com/MYNETWORK/oauth2/decision?client_id=MYAPPCODE&redirect_uri=http%3a%2f%2fmy.devmachine.contoso.com&response_type=code HTTP/1.1
内容类型:application/x-www-form-urlencoded
主持人:www.yammer.com
Cookie:yamtrak_id=[GUID]_workfeed_session_id=[id]内容长度:90
预期:100人继续
utf8=%E2%9C%93&真实性\u令牌=[令牌]=&允许=允许
找到HTTP/1.1 302
服务器:nginx
日期:2014年9月29日星期一13:21:51 GMT
内容类型:text/html;字符集=utf-8
传输编码:分块
连接:关闭
状态:302找到
地点:http://my.devmachine.contoso.com?code=[CODE]X-XSS-Protection:1;模式=块
X-Content-Type-Options:nosniff
严格的交通安全:最大年龄为31536000岁;包含子域
X-Frame-Options:SAMEORIGIN
缓存控制:没有缓存
P3P:CP=“NOI ADM DEV PSAi COM NAV我们的OTRo STP IND DEM”
X-UA-兼容:IE=Edge,chrome=1
设置Cookie:yamtrak_id=[id];路径=/;expires=周二,2015年9月29日13:21:51 GMT;保护HttpOnly
设置Cookie:auth_令牌=;路径=/;expires=1970年1月1日星期四格林威治标准时间00:00:00;保护
设置Cookie:auth_token_sso=;domain=yammer.com;路径=/;expires=1970年1月1日星期四格林威治标准时间00:00:00;保护
X日期:1411996911966
X运行时:0.073263
7e
你是在逃避责任。
0
404响应:

POST https://www.yammer.com/MYNETWORK/oauth2/decision?client_id=MYAPPCODE&redirect_uri=http%3a%2f%2fmy.devmachine.contoso.com&response_type=code HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.yammer.com
Cookie: yamtrak_id=[GUID]; _workfeed_session_id=[ID]
Content-Length: 90
Expect: 100-continue

utf8=%E2%9C%93&authenticity_token=[TOKEN]=&allow=Allow
HTTP/1.1 404 Not Found
Server: nginx
Date: Mon, 29 Sep 2014 13:26:03 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Status: 404 Not Found
Cache-Control: no-cache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
X-UA-Compatible: IE=Edge,chrome=1
X-Date: 1411997163223
X-Runtime: 0.068703

a45
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=8,chrome=1" /> 
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <title>The page you were looking for doesn't exist (404)</title>
  <link href="/stylesheets/yamkit/yam.css" media="screen, projection" rel="stylesheet" type="text/css" />
  <style type="text/css">
    body {
      ...
      <div id="parallax-static">
      <div id="parallax-static-text">
        <h1>Oops!</h2>
        <h2>The page you were looking for could not be found.</h2>
        <a href="/" title="">Let's go back to your happy place.</a>
      </div>
      </div>
      ...
  </body>
</html>

0
POSThttps://www.yammer.com/MYNETWORK/oauth2/decision?client_id=MYAPPCODE&redirect_uri=http%3a%2f%2fmy.devmachine.contoso.com&response_type=code HTTP/1.1
内容类型:application/x-www-form-urlencoded
主持人:www.yammer.com
Cookie:yamtrak_id=[GUID]_工作提要\u会话\u id=[id]
内容长度:90
预期:100人继续
utf8=%E2%9C%93&真实性\u令牌=[令牌]=&允许=允许
未找到HTTP/1.1 404
服务器:nginx
日期:2014年9月29日星期一13:26:03 GMT
内容类型:text/html;字符集=utf-8
传输编码:分块
连接:保持活力
状态:找不到404
缓存控制:没有缓存
P3P:CP=“NOI ADM DEV PSAi COM NAV我们的OTRo STP IND DEM”
X-UA-兼容:IE=Edge,chrome=1
X日期:1411997163223
X运行时:0.068703
a45
您要查找的页面不存在(404)
身体{
...
哎呀!
找不到您要查找的页面。
...
0
我知道这个论坛中还有其他yammer线程,我正在使用新的login_csrf_令牌cookie进行身份验证,所以这不应该是问题所在

谢谢你的阅读!我很感谢你对如何解决这个问题的建议


编辑:我尝试将另一个站点(谷歌)设置为我的重定向url,但这种交替行为仍然存在。

发现:有时真实性标记包含需要url编码的加号(+)。标记还可以包含前斜杠(/)但是它们不会在后续调用/session或/oauth2/decision时出错,只有plus会出错。

您可能希望从发布的捕获中删除您的OAUTH令牌。如果没有必要的上下文,这些代码是无用的,但您是对的。安全总比抱歉好!您是否试图模拟应该由浏览器?不要这样做,打开浏览器。是的。我现在知道,我在这条路线上寻找麻烦。阅读史蒂夫·佩施卡斯(Steve Peschkas)关于这一主题的帖子,至少看起来是一个可能的解决方案。我只是不想强迫用户手动接受另一个应用程序(他们正在堆积…)。