ASP.NET: как делиться ресурсами (членство, библиотеки) между веб-приложениями
-
03-07-2019 - |
Вопрос
Я пытаюсь создать небольшую интранет. Для этого у меня есть локальный веб-сервер. Корнем этого веб-сайта будет панель инструментов, которая будет содержать функции входа в систему / регистрации (членство в ASP.NET по умолчанию).
http://localhost http://localhost/Account
Остальная часть интрасети будет состоять из подприложений, таких как:
http://localhost/ApplicationName
Корневой веб-сайт и большинство вложенных приложений требуют аутентификации пользователя, для которого я буду использовать поставщика членства ASP.NET по умолчанию.
Все проекты (root и sub) являются отдельными проектами в Visual Studio, и у каждого проекта есть свой Проект WebSetup для развертывания.
1.) Как я могу использовать членство в ASP.NET во вложенных приложениях?
Кроме того, большинство приложений (root и sub) будут использовать стороннюю библиотеку (инфраструктуру данных).
2.) Как я могу ссылаться на библиотеку в корневом проекте и «использовать» указанную библиотеку в подпрограммах?
Спасибо за любые предложения!
Решение
Создайте свой общий код в проектах библиотек классов, которые можно использовать из нескольких веб-проектов. Что касается поставщика членства, я думаю, вам нужно будет сохранить данные членства во внешнем экземпляре SQL (который может быть на том же сервере), а затем просто использовать те же строки подключения для доступа к ним в каждом проекте.
Другие советы
Членство предназначено для работы с одним или несколькими приложениями. У вас может быть экземпляр базы данных (отдельно от любых баз данных для любого из ваших приложений), в котором могут храниться данные о членстве каждого из ваших приложений. Если вы хотите, чтобы все ваши приложения использовали одинаковые данные о членстве, укажите идентичное имя приложения (и connectionString), когда определение членства в web.config каждого приложения .
Что касается второй части вашего вопроса, ответ, размещенный tvanfosson (вместе с комментариями), должен привести вас на правильный путь.
Изменить (@ ropstah Comment): Ах, я не учел этого. В этом случае вы захотите внедрить единый вход (SSO) . Масуд Табатабаи опубликовал статью на ASPAlliance.com , в которой описывается весь процесс. Кроме того, ответ предоставлен Кейтом Руллом на этот вопрос переполнения стека также может помочь.