Можем ли мы создать приложение с собственным разделом Web.config и Аутентификация с помощью форм внутри другого приложения с использованием Аутентификации с помощью форм? - PullRequest
0 голосов
/ 29 сентября 2008

У меня есть приложение, которое использует проверку подлинности с помощью форм для проверки подлинности одного типа пользователей. В этом приложении есть раздел, который необходимо аутентифицировать для другого типа пользователя, используя другую таблицу в базе данных. Проблема возникает, если время сеанса пользователя второго типа истекло, и она перенаправляется на страницу входа, определенную в разделе проверки подлинности с помощью форм основного Web.Config, вместо страницы входа для пользователя второго типа. Я ищу решения этой проблемы. Одна идея состоит в том, чтобы создать приложение для IIS для этого раздела, создать Web.Config для папки и добавить другой раздел проверки подлинности с помощью форм. В моих экспериментах, кажется, это не работает. Я что-то упускаю из виду? Есть идеи?

Ответы [ 5 ]

1 голос
/ 29 сентября 2008

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

<location>...</location> 

Внутри вы можете указать отдельные параметры конфигурации для любой папки / файла, который вы хотите. Смотрите здесь для справки.

РЕДАКТИРОВАТЬ: Apoligies, я забыл правильно отформатировать код

1 голос
/ 29 сентября 2008

IIRC, аутентификация работает для каждой папки. Так что вы должны быть в состоянии сделать это, если все страницы, требующие аутентификации 2-го типа, находятся в определенной подпапке со своей собственной конфигурацией.

Не уверен на 100% в этом, поэтому, если кто-то более знающий может противоречить мне, я просто удалю ответ.

0 голосов
/ 29 сентября 2008

Как я понимаю эту проблему, у вас есть два решения, и первое - это посмотреть на роли, и вся модель поставщика будет отличным началом. В противном случае лучшим вариантом будет разделить приложение на две части, разбить область второго типа пользователя и затем включить его обратно в основной проект через виртуальный каталог. Просто помните, что виртуальные каталоги наследуют свои разрешения от родительских каталогов web.config, поэтому вам нужно будет использовать теги <Location> для удаления аутентификации для виртуального каталога, а затем в виртуальных каталогах web.config определить вашу новую аутентификацию форм. Это хорошо работает, если вам требуется проверка подлинности Windows (NTLM) в разделе Проверка подлинности с помощью форм.

0 голосов
/ 29 сентября 2008

Да, вы можете. Файлы Web.config имеют древовидную архитектуру наследования с возможностью переопределения. Это означает, что вы можете изменить настройки внутри подпапки, поместив туда файл web.config и указав различные параметры конфигурации.

0 голосов
/ 29 сентября 2008

Вы не можете иметь раздел внутри тега , поэтому вы должны настроить подпапку как собственное приложение IIS (и ASP.NET). Таким образом, вы должны иметь возможность запускать подраздел самостоятельно.

Я думаю, что 500.19 - это ошибка "не могу прочитать или проанализировать web.config" - есть ли в ней детали? Вам может потребоваться включить удаленные ошибки (или проверить Event Viewer), чтобы увидеть их. Если у вас все еще есть проблемы, опубликуйте фрагмент web.config.

В качестве отступления - я никогда не был фанатом вложенных приложений и, вероятно, предпочел бы, чтобы ваша обычная страница Login.aspx обрабатывала ее с помощью MemberOf или, возможно, перенаправляла на SpecialUserLogin.aspx или что-то еще. Вложенные приложения - это PITA для настройки и тестирования, IME (например, я не думаю, что вы даже можете заставить его работать под Cassini - хотя вы можете сделать для него 2 отдельных проекта и объединить их при развертывании).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...