Až se zase jednou budete divit, vztekat a nadávat, proč na lokálu vše funguje tak, jak má, a v momentě, kdy svoji ASP.NET aplikaci nahrajete na IISku a nasadíte na ostrý web, aplikace vás nenechá přihlásit a neustále vás přesměrovává na Login stránku, vězte, že řešení je jednoduché.
Problém nastane, kdy na jednu doménu 2. řádu nasadíte dvě aplikace, které se přihlašují přes Forms Authentication. Ve standardním nastavení se totiž snaží sdílet své autentizační tickety, což se jim ovšem pochopitelně nepodaří. Kdyby to ASP.NET alespoň žbleptlo, ale ne, prostě pořád tupě přesměrovává na login stránku a i když zadáváte správné jméno a heslo, dál vás to nepustí.
Stačí ve web.configu přidat element forms dovnitř authentication a nastavit mu atribut name u každé aplikace na jinou hodnotu. Pak se autentizační tickety nesdílejí a na různých subdoménách můžete provozovat různé aplikace.
<authentication mode="Forms">
<forms name="nakupy.herceg.cz" loginUrl="Login.aspx" timeout="100000" slidingExpiration="true" />
#lt;/authentication>
Nejvtipnější je na tom to, že dokud je na serveru jen jedna aplikace, která autentizaci využívá, vše funguje. Jakmile nasadíte druhou, přestane to jít. A ještě pikantnější je, že jsem to nejmíň 5x v životě řešil, akorát vždycky zapomenu, čím to bylo. Proto si to píšu na blog a až zase někdy budu psát do vyhledávače něco jako "IIS Forms Authentication login redirect” nebo “Forms Authentication problem IIS”, najde to tenhle blog post.
Jsem hlavním softwarovým architektem ve společnosti Riganti. Mám dlouholeté zkušenosti s technologiemi ASP.NET, Silverlight, WPF a XNA. Působím též jako lektor ve společnosti Gopas a již třetím rokem jsem držitelem ocenění Microsoft Most Valuable Professional.
Souhlas
Datum: 16.11.2009 13:22
Autor: neregistrovaný (213.226.198.106)
Hodnocení autora: není
Příspěvků: 0
Tak s tímto jsem se také setkal a musim říct,že už dlouho jsem se takhle nevztekal :D
...ale kam s ním ?
Datum: 18.11.2009 17:35
Autor: neregistrovaný (86.49.11.25)
Hodnocení autora: není
Příspěvků: 0
Tenhle web je normální bomba pro ty co dělají v ASPNetu. Trvalo mi asi 3 hodiny než jsem se rozhodl přesně tenhle problém "vyGooglovat". Což o to rada je to dobrá, ale kam stím druhým zápisem. Jsem asi málo chytrej, ale mě to říká, že v tom tagu může být jen jeden zápis. Konkrétně se snažím dodělat na stejný doméně druhou aplikaci a nevím kam s tím.
<authentication mode="Forms">
<forms name="vysehrad2000.com/bonus/" loginUrl="bon369.aspx" timeout="100000" slidingExpiration="true" />
<forms name="vysehrad2000.com/beseda/" loginUrl="Default.aspx" timeout="100000" slidingExpiration="true" />
</authentication>
Můžete mi prosím někdo poradit kam se zápisem ?
Díky Milan