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.