2016-06-28 3 views
0

で使用varialblesとき、私は変数のセッションを使用して、私は、次の手順を実行したときに、私はこのエラーを取得しています:ADFSのログインエラーセッションがMVC

1)ADFSを経由してログインし、アプリケーション 2にアクセス)操作 3を実行してください)すべてのブラウザセッションを終了します。 (IEとChromeの両方で発生します) 4)もう一度ADFS経由でログインしようとすると、約4回リダイレクトされ、エラーがスローされます。

アプリケーションがグローバルにアプリケーションに影響を及ぼすため、IISを再起動する必要があります。このエラーが発生すると、どのユーザーもアクセスできません。

TempData、ViewBag、ViewDataを使用してもエラーを返すにしても、Session変数に絞り込んだ。セッション変数を削除するとエラーになりません。

セッション変数が原因でエラーが発生する理由はありますか?

[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); 
    }); 

答えて

1

私は正確に同じ問題を持っていたし、私もそれがダウンしてセッション変数を使用することに気づきました。

理由は、セッション変数がOwin応答ヘッダーで設定されたCookieと干渉するためです。この問題の回避策は、カスタムCookieマネージャを作成することです。 https://blogs.msdn.microsoft.com/dsnotes/2016/08/25/owin-cookies-signin-error-with-ad-fs/

+0

おかげでスティーブ:これは私

このMicrosoftの記事が問題を説明し、また、カスタムクッキーマネージャを作成するためのコードサンプルを提供するために、問題を解決しました。私はまだその解決策を試していないが、それは理にかなっている。残念ながら、私はアプリケーションでセッション変数を使用しないように私のアプリケーションを辞任しました。 – Apollo

+0

私はこれを複数回投票することができれば幸いです!これを見つけるためにしばらく時間がかかりましたが、それは魅力のように機能します - ありがとう。 – AS2012

関連する問題