Аутентификация с помощью форм ASP.NET - несколько входов - PullRequest
0 голосов
/ 22 июня 2011

Я уверен, что варианты этого вопроса задавались много раз, но я не могу найти ответ.

У меня есть веб-сайт, который является интернет-магазином.У нас есть следующие требования для входа в систему / управления учетными записями:

Члены роли администратора для входа в систему / Admin Члены роли Pro для входа в систему / Pro Члены роли Customer не имеют определенной области, в которую они входят., но при оформлении заказа мы хотим, чтобы они могли войти в систему, чтобы им не приходилось снова вводить свои данные о доставке.

Поэтому мы хотели бы, чтобы структура URL была примерно такой:

/ Checkout.aspx (/ форма входа в систему) /Admin/Login.aspx /Pro/Login.aspx (единственное небольшое исключение здесь - это то, что мы хотим, чтобы пользователи имели доступ к странице /Pro/Register.aspx безвошел в систему - по понятным причинам)

Я прочитал, что это было возможно, если я удаляю конфигурацию аутентификации из основного web.config и создал файл web.config в каждой из папок pro и admin.В IIS 7 я изменил папки на приложения, но затем страницы не могли получить доступ к главным страницам с основного сайта.

Правильно ли я это делаю?

Заранее спасибо.

Al

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Вы не должны создавать новое приложение; просто включите файл web.config для ваших подпапок с авторизацией, разрешив только роли, к которым вы хотите иметь доступ.

0 голосов
/ 22 июня 2011

Я не знаю, зачем вам нужно менять папки на приложения, но ваша стратегия создания 'sub' файлов web.config в каждом дочернем каталоге - один из правильных способов достижения этого.

Другой способ - объявить разрешения в корневом web.config для каждой страницы или каталога, как показано в примере ниже (из здесь ):

<configuration>
    <system.web>
        <authentication mode="Forms" >
            <forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
            </forms>
        </authentication>
<!-- This section denies access to all files in this application except for those that you have not explicitly specified by using another setting. -->
        <authorization>
            <deny users="?" /> 
        </authorization>
    </system.web>
<!-- This section gives the unauthenticated user access to the Default1.aspx page only. It is located in the same folder as this configuration file. -->
        <location path="default1.aspx">
        <system.web>
        <authorization>
            <allow users ="*" />
        </authorization>
        </system.web>
        </location>
<!-- This section gives the unauthenticated user access to all of the files that are stored in the Subdir1 folder.  -->
        <location path="subdir1">
        <system.web>
        <authorization>
            <allow users ="*" />
        </authorization>
        </system.web>
        </location>
</configuration>
...