Здравствуйте, ne3nayka, Вы писали:
N>День добрый! Занимаюсь корпоративным сайтом, возникла проблема как реализовать авторизацию пользователей.
N>Сайт должен быть доступен только корпоративным пользователям. В связи с этим, у него есть 2 доступные всем странички:
N>1.Приветствия и 2.Авторизации. Все остальные странички должны быть для неавторизованных пользователей недоступны.
N>Желаемое решение — настройка Web.Confog правильным образом, без модификации самих внутренних страниц.
N>Возможно, часть логики прописать в Global.asax.
N>Сейчас настроил Web.Config следующим образом
N> <authentication mode="Forms">
N> <forms loginUrl="login.aspx" timeout="1" name=".FOOAUTH" defaultUrl="Welcome.aspx" path="/" cookieless="UseCookies" />
N> </authentication>
N> <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
N> <authorization>
N> <allow users="*" />
N> </authorization>
N>При таких настройках попадаю на любую страницу без прохождения авторизации на формах.
N>Подскажите плиз, реально сделать авторизацию через эти страничку приветствия и форму авторизации не меняя внутренних страниц сайта?
К примеру, как это сделано у меня:
Во-первых:
<authorization>
<deny users="?"/>
</authorization>
Во-вторых, для доступных всем страниц:
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Приветствие.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
В-третьих, для остальных страниц (для каждой):
<location path="Page1.aspx">
<system.web>
<authorization>
<allow roles="Роль1, Роль2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Page2.aspx">
<system.web>
<authorization>
<allow roles="Роль2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
и т.д. и т.п.