我使用会话变量时会遇到此错误,并且我执行以下操作:
1)通过ADF登录并访问应用程序2)执行操作3)关闭所有浏览器会议。(在IE和Chrome中都发生)4)我尝试再次通过ADF登录,并重定向大约4次,并引发错误。
必须重新启动以使应用程序正常工作,因为它会影响全球应用程序。一旦发生此错误,都无法访问它。
我将其范围缩小到会话变量,即使我使用tempdata,viewbag,viewData也会给出错误。如果我删除了会话变量,则不会给我错误。
有什么想法为什么会话变量会导致错误?
[HttpPost]
[ValidateAntiForgeryToken]
//Gets called on button clicked
public ActionResult SaveDoc()
{
Session["myList"] = bpc.UploadDocument(dto);
return Json(new { success = true, redirectToUrl = Url.Action("Summary") });
}
public ActionResult Summary()
{
return View();
}
[HttpPost]
public ActionResult GetResults_List([DataSourceRequest]DataSourceRequest request, CloudDTO dto)
{
var getResults = (List<SampleList>)Session["myList"];
return Json(getResults.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
客户端
function btnSubmitClick() {
displaySpinner(true);
$.ajax({
url: '@Url.Action("SaveDoc", "Home")',
datatype: 'json',
data: {
__RequestVerificationToken: $('[name=__RequestVerificationToken]').val(),
URL: value,
CloudProvider: $("#cloudProvider").data("kendoDropDownList").text(),
},
type: "POST"
}).success(function (data) {
if (data.success) {
//On success we go to the Summary page.
window.location.href = data.redirectToUrl;
}
else {
//Error Message to user.
$("#validationMessage").html(data.message);
}
})
.done(function () {
displaySpinner(false);
});
我遇到了完全相同的问题,我也意识到这取决于会话变量的使用。
发生的原因是因为会话变量干扰了Owin响应标头设置的cookie。此问题的解决方法是创建自定义Cookie Manager。这为我解决了问题
这篇Microsoft文章解释了此问题,还提供了用于创建自定义cookie Manager的代码示例:https://blogs.msdn.microsoft.com/dsnotes/2016/08/08/25/OWIN-COOKIES-COOKIES-COOKIES-SIGNIN-SIGNIN-ERROR-WITH-ad-fs/