/ / Overovanie formulárov v aplikáciách nemá súbor cookie - c #, asp.net, asp.net-mvc, súbory cookie, autentifikácia pomocou formulárov

Verifikácia formulárov v aplikáciách nemá cookie - c #, asp.net, asp.net-mvc, cookies, overovanie formulárov

Mám dve žiadosti. Prvou z nich je aplikácia ASP.NET 4 MVC, ktorá vyžaduje overenie. Druhou je aplikácia, ktorá spracuje overovanie a nastaví súbor cookie na overenie formulárov.

V autorizovanej aplikácii volám

FormsAuthentication.SetAuthCookie(username, false);

a potom urobím jednoduchú Response.Redirect späť do mojej MVC aplikácie.

V aplikácii MVC vytváram vlastný filterzdedí od AuthorizeFilter. Pri metóde OnAuthorization som sa chystal dešifrovať súbor cookie a získať ďalšie údaje o používateľovi od oprávneného používateľa.

Môj problém je, že

HttpContext.Current.Request.Cookies

nemá v tom nič. Odhlásil som fiddlera a overovacia aplikácia správne nastavila súbor cookie a aplikácia MVC súbor cookie získa, ale keď sa dostane do môjho filtra, nič tu nie je.

Môj web.config má v oboch aplikáciách presne rovnaké nastavenie:

      <forms
name=".ASPXFORMSAUTH"
protection="All"
path="/"
timeout="30"
enableCrossAppRedirects="true"
domain="localhost"/>

A ja mám nastavenie obaja s rovnakým machineKey, aby som mohol dešifrovať cookie. Problém je v tom, že vo svojom spôsobe autorizácie v rámci môjho filtra MVC nevidím žiadny súbor cookie.

Momentálne sú obe aplikácie spustené v mojej lokálnej inštancii IIS.

odpovede:

7 pre odpoveď č. 1

Všetko divné správanie bolo spôsobené httpRuntimemedzi jednotlivými aplikáciami. Moja aplikácia MVC bola nastavená na 4,5, zatiaľ čo moja aplikácia, ktorá nastavovala súbor cookie, bola 4.0. Zdá sa, že došlo k zmene v tom, ako sa krypto odohráva v zákulisí, a preto, keď sa cookie dostane cez potrubie, bude to odstránené, pretože ASP.NET ho nebude môcť dešifrovať.

Narazil som na to, keď som sa to manuálne snažildešifrujte súbor cookie tak, že nastavíte inú vlastnosť názvu. Týmto spôsobom by som mohol získať prístup k súboru cookie a skúsiť dectypt, ale v tom momente by som dostal výnimku.

Našiel som nasledujúci odkaz, ktorý ma viedol správnym smerom: Zdieľanie súborov cookie medzi dvoma webovými stránkami v tej istej doméne

Nastavením nastavenia režimu kompatibility na strojovom kľúči prešiel súbor cookie v poriadku a mohol byť dešifrovaný.