2

У нас есть простое приложение ASP.NET, которое использует ASP.NET SqlMembershipProvider, и все отлично.Аутентификация ASP.NET - многопользовательская и многопользовательская база данных

Мы хотим создать второе приложение на том же сервере, а также использовать SqlMembershipProvider, но другое «имя приложения», чтобы учетные записи пользователей между двумя приложениями оставались раздельными.

Похоже, что это было бы возможно, создав два разных домена приложения (т.е. каждый из них имеет свой собственный web.config), но я надеюсь просто поместить их в разные каталоги, поэтому у меня нет 3 веб-сайтов .configs (по одному для каждого приложения и основной), что все нужно синхронизировать. Так что я после:

/web.config 
/APP1 (uses membership provider in /web.config, with userlist A) 
/APP2 (uses membership provider in /web.config, with userlist B) 

Это выглядит просто определить несколько поставщиков членства, которые используют различное значение «ApplicationName».

Но как вы сообщаете узлу system.web.authentication, какой членский провайдер должен использовать?

Насколько я могу судить, он всегда будет использовать значение по умолчанию.

ответ

0

Использование вашей структуры Я думаю, вам придется реализовать свою собственную оболочку вокруг поставщика членства, эффективно создав собственного поставщика, который просто подгоняет запросы и изменяет значение имени приложения на основе каталога приложений.

1

Если я правильно прочитал ваш сценарий, похоже, единственная разница между этими двумя приложениями - это свойство «ApplicationName».

Итак, если вы установили это в Application_Start (в Global.asax) каждого из двух приложений, вы должны быть золотыми.

protected void Application_Start(object sender, EventArgs e) 
{ 
    Membership.Provider.ApplicationName = "test"; 
} 
+0

Не было бы иметь несколько файлов Global.asax (т.е. один в папке APP1 и один в папке APP2), требуется отдельный файл web.config? (мое предположение состоит в том, что отдельные файлы web.config на самом деле определяют то, что определяет отдельное «приложение») – DougN

+0

Нет, отдельные файлы web.config не делают его отдельным приложением. Приложение настроено в IIS, перейдя к свойствам виртуального каталога и нажав кнопку «Создать» в разделе настроек приложения. Да, вам нужно использовать два web.configs. – Greg

+0

Есть ли причина, по которой логика application_start не может быть немного сложнее, просто получая корневой каталог приложения и используя это, чтобы определить подходящее имя? Таким образом, два приложения с разными корнями могут иметь разные имена без нескольких файлов web.config? – Chris

Смежные вопросы