asp.net – 代码无效或已过期.使用API??调用显式使会话无效
有使用Facebook API的ASP.NET 4.0应用程序.它工作正常,直到上周.
当我尝试为我的应用程序获取访问令牌时 public static string GetWebResponse_HttpWebRequest(string url) { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "GET"; WebResponse webResponse; string response = ""; webResponse = request.GetResponse(); io.Stream stream = webResponse.GetResponseStream(); io.StreamReader str = new io.StreamReader(stream); response = str.ReadToEnd(); return response; } url: https://graph.facebook.com/oauth/access_token?client_id=117260348353246&client_secret=7b8734d7f36bf007d0d40bec728b57d9&code=AQD5xcdQiE2Ab9RpmexVUdP-i_2Nm5V52SVhxBVXkeq7WlJoOQ-xB4wYgbs3yeejLFHmR-lKLj0cwg6FeMWKGvHwT4akAlN7uMLxqu9YaqFumup3SPkuTjuQYETTCqQ1n2MAQjzexqiv8WV3UEcO4Qy5lObQ13qdYlKoYdKUacT42oJ0vhVuopH2WNkk3QRCq6DeAl02YU-sD8X8PTZgu52e&redirect_uri=http://www.opinere.com 有一个错误: {"error":{"message":"Code was invalid or expired. The session was invalidated explicitly using an API call.","type":"OAuthException","code":100}} 在我的本地机器应用程序正常工作. 更新:有两个请求: 解决方法
让我向你解释发生了什么.此问题适用于多个Web角色.
天蓝色的网络角色是什么? Web角色是VHD,即系统映像虚拟运行,您的数据/网站被复制到它们.它是织物分配,初始化和复制的工作. Web角色如何协同工作? 负载均衡器在角色之间平衡传入流量.这意味着在一个Web角色中创建的会话将在另一个Web角色中失效.它不仅仅是Sessions,即使是表单身份验证也不会起作用. 为什么? 因为会话/表单身份验证使用machineKey来加密/哈希.每个Web角色/虚拟机都有不同的machineKey.现在你明白为什么它有时有效,有时却无效.当请求到达创建会话的同一角色VM时,它可以工作,而不是.通常它只适用于1:创建的每个会话的角色时间没有(大约). 解? 就像您在Web场中托管您的站点一样.因此,您应该了解如何使您的网站在Web场中运行.或者你可以只使用一个Web角色,如果你使用2个小vm /角色,你可以只使用一个大型虚拟机,但都取决于你的应用程序的行为方式,所以你应该首先测试什么效果最好,多个虚拟机或者一个大VM.此外,如果您的角色发生故障,单个虚拟机会降低可靠性,您的网站将会关闭. 在这里查看使用表存储的解决方案 编辑不是将令牌保存到会话中,而是使用cookie,但是你没有解决根本问题,如果你没有对核心问题做些什么,你会遇到很多问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NEt MVC 3中传递Html.BeginForm()中D
- asp.net-mvc – 从基本控制器继承LINQ-to-SQL数据上下文
- asp.net-mvc – 仅从路由数据生成URL
- ASP.NET AJAX AsyncFileUpload UploadedComplete不会触发
- asp.net – 无法识别的配置节system.identityModel
- asp.net – 如何使用JSON方法序列化javascript对象
- asp.net-core – 如何根据ASP.NET Core中的解决方案配置运行
- asp.net-mvc – 如何使用wmd-editor控件检索markdown和html
- asp.net-mvc – 实现IModelBinder的最佳实践
- asp.net-mvc-2 – 如何在asp.net mvc 2中使用fakeiteasy假冒
- asp.net-mvc – ASP.NET MVC的生产力?
- asp.net-mvc – 部分视图和ModelState.AddModelE
- asp.net – 使用mvc-mini-profiler 1.9“无法确定
- asp.net-mvc-3 – 将复选框绑定到MVC中的int数组
- ASP.NET MVC的OnResultExecuted方法中的ActionRe
- asp.net-4.0 – Asp.net 4.0:如何在自定义错误页
- asp.net – PayPal Express Checkout MVC C#示例
- asp.net – @RenderSection在嵌套剃刀模板
- asp.net – 如何在发布链接时以编程方式检查“无
- .net – 具有实体框架的存储库模式