/ / asp.net от удостоверяване винаги пренасочва - asp.net, формуляри, удостоверяване

asp.net от удостоверяване винаги пренасочва - asp.net, формуляри, удостоверяване

Моят сайт трябва да има някои части, които могат да се видят само при удостоверяване на потребителя, някои части, които са видими за всички.

Удостоверяването на формулярите винаги пренасочва потребителя към страницата за вход, без значение коя страница се посещава. Това означава ли, че не трябва да използвам удостоверяване на формуляри? Как мога да разреша този проблем?

Отговори:

1 за отговор № 1

Използвайте елемента <location> в web.config, за да зададете кои страници са защитени. Трябва да премахнете пълномощното от целия уеб сайт, което е зададено за всяка защитена страница в елемента <location>.
Един общ подход е да поставите всички защитени страници в отделна папка и да определите пътя за местоположението към тази папка.
Друго е да имаме клас, който наследява System.Web.Page и в събитието Init да пренасочи потребителя към някаква страница, ако не е удостоверен. След това всяка страница трябва да наследи тази страница.

<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
<location path="public">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

0 за отговор № 2

За мен проблемът беше MachineKey, Необходимо е да дешифрира / шифрова "бисквитката" ако Вие правите това (например: уеб ферма). Тъй като приложението не можеше да дешифрира "бисквитката", въпреки че се предаваше назад и напред, приложението действаше така, сякаш "бисквитката" изобщо не беше там. Добавянето на тази настройка в web.config я фиксира:

<machineKey compatibilityMode="Framework20SP2" validationKey="some_hard_coded_long_key" decryptionKey="another_hard_coded_long_key" validation="SHA1" />

Вижте тази статия за повече информация за machinekey.