защищенные страницы в asp.net с#

#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. не будет работать, поскольку в этом случае Боб также может просматривать страницу Джонаса