.Net MVC Redirect после аутентификации ADFS приводит к потере данных в TempData

Ваша помощь будет оценена

В нашем веб-приложении у нас есть метод с именем "ExternalLogin", который является методом Post в MVC Controller.

public ActionResult ExternalLogin(FormCollection collection)
{
    //Here we set bunch of Temp Data (I know it is bad but it is what it is)
    var ovm = TempData["optionsVm"];
    ovm.Prop1 = "SomeValue";
    ovm.Prop2 = "SomeOtherValue";
    .
    .
    .

    //then we assign back 
    TempData["optionsVm"] = ovm;

    //we do then ADFS Authentication Challenge as below and it works
    var ctx = Request.GetOwinContext();
    string  provider = "ADFSProvider";
    //ctx.Authentication.SignOut();
    ctx.Authentication.Challenge(
    new AuthenticationProperties
    {
    RedirectUri = 
Url.Action("**LoginCallbackBerkleyMarineAdfs**", "Account", new { provider })
                },
                provider);
   return new HttpUnauthorizedResult();
}

public ActionResult LoginCallbackBerkleyMarineAdfs(FormCollection collection)
{
   //Here TempData["optionsVm"] is null
}

Я использовал TempData.Keep("optionsVm") и TempData.Peek("optionsVm") в методе внешнего входа перед перенаправлением из ADFS, но безрезультатно.

Это работает иногда и не работает в другие времена. И действительно это боль.

Надеюсь, я получу ответ от вас, ребята. Спасибо.

------------- Подробнее о настройке и чтении TempData ["OptionsVm"]

 @{
        QuickQuoteForm optionsVm = (QuickQuoteForm)TempData["optionsVm"]; 
    } 
    <form id="ins-details" action="ExternalLogin" ...> 
        @Html.Hidden("equipmentDeductible", optionsVm.Deductible) 
        @{TempData["optionsVm"] = optionsVm;} 
    <form/> 

Здесь, когда форма становится опубликованной, она переходит к методу внешнего входа в исходный вопрос

0 ответов

Другие вопросы по тегам