#asp.net #security #authorization
#asp.net #Безопасность #авторизация
Вопрос:
конфигурация, которую я :
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode ="Forms">
<forms name ="loginpage" loginUrl="login_to_secure3700.aspx" />
</authentication>
</system.web>
<location path ="securedpages/bob.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Таким образом, файл pag bob.aspx будет доступен только тогда, когда имя пользователя и пароль были введены нормально.
НО это работает только для страницы bob.aspx, как я могу заставить это работать, например, для 50 страниц, но все с разными логинами и паролями. ?
Комментарии:
1. Что вы пытаетесь сделать? Создать веб-сайт, который отличается для разных пользователей, или отдельные страницы для отдельных людей?
2. создание веб-сайта с одной страницей входа для 50 клиентов, как только они вводят свой логин и пароль, он должен перенаправлять их на их персональную страницу. например, если Боб входит в систему, открывается bob.aspx. если jonas входит в систему, открывается файл jonas.aspx. но когда Джонас входит в систему, он не может открыть bob.aspx.
3. Что отличается в содержимом. Я бы лично использовал одну защищенную страницу и динамически изменял содержимое на основе имени пользователя.
Ответ №1:
Есть два варианта:
Защитите каждую страницу, запретив всем пользователям и разрешив bob только для bob.aspx и helen для helen.aspx. Учитывая приведенные выше ответы, вы наверняка справитесь с этим, но это громоздко: для каждого нового пользователя вам нужно изменить свою конфигурацию.
Я думаю, что лучший способ — создать один! страница (user.aspx) и возьмите пользователя, который вошел в систему, и персонализируйте эту единственную страницу для этого пользователя. Это намного проще в обслуживании, и у вас будет весь код на одной странице.
Если вы хотите сохранить персонализированный подход в имени страницы (bob.aspx), вы можете взглянуть на переписывание URL.
Ответ №2:
Вы можете добавить несколько путей, подобных этому:
<location path ="securedpages/bob.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path ="securedpages/bob2.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Или проще, просто добавьте каталог защищенных страниц:
<location path ="securedpages">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Комментарии:
1. второй подход не будет работать в данном конкретном случае. 1 для первого подхода
Ответ №3:
вы можете поместить все 50 страниц в одну папку и добавить 1 web.config для них в эту папку, которая содержит
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Не имеет значения, имеют ли они разные логины и пароли.
Комментарии:
1. не будет работать, поскольку в этом случае Боб также может просматривать страницу Джонаса