首页 > 解决方案 > 重定向后会话为空并从另一个域返回

问题描述

我们有一个网站ASP.NET Web Forms,它使用另一个网站(来自另一家公司,我们无法控制)服务。为了使用他们的服务,我们调用他们的 API 并制作 HTML 表单(包括 API 的返回值)并发布表单。像这样的东西:

function foo(returnedValueFormApi) {
    var form = document.createElement('form');
    form.setAttribute('method', 'POST');
    form.setAttribute('action', 'http://that-company.com/...');
    form.setAttribute('target', '_self');
    var hiddenField = document.createElement('input');
    hiddenField.setAttribute('name', '...');
    hiddenField.setAttribute('value', returnedValueFormApi);
    form.appendChild(hiddenField);
    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
}

在调用此方法之前(为了发布表单),我们创建Session,例如:Session["Foo"]=10。在该用户将被重定向到他们的网站后,做几件事,然后他们将用户发送回我们的网站(并发布一些与问题无关的值),Page_Load我们的回调页面的内部事件,我们需要检查Session(在我们的示例中,Session["Foo"])。问题是本届会议是null

强调:

标签: c#asp.netsessionwebforms

解决方案


推荐阅读