Я надеюсь, что у кого-то была похожая проблема, и он может дать совет. Я исследовал довольно долгое время, но не смог найти однозначного ответа.
Мои настройки:
- 1 База данных MsSQL (содержит таблицы идентификаторов системы.Web.Security)
- Многие библиотеки DLL в .Net Framework (с использованием System.Web.Security для входа в систему)
- Несколько различных программ / приложений, вызывающих библиотеки DLL
- WebFormsГрафический интерфейс в .Net Framework (Использование System.Web.Security для входа в систему)
Что я хочу:
- Использование IdentityServer4 в .netCore или .Net Framework
- Хранение DLL в .Net Framework
- Использование WebApi в .Net Core
- Использование нового графического интерфейса (например, в Angular или Blazor)
- Использовать старый графический интерфейс в веб-формах параллельно с новым графическим интерфейсом (пока новый графический интерфейс не будет завершен)
Моя проблема: Мои библиотеки DLL и приложения используют System. Web.Security для управления пользователями (логин и т. Д.). Это пространство имен не поддерживается в .Net Core, но изменить все мои библиотеки DLL на .Net Core для меня невозможно, поскольку это приведет к слишком большому количеству изменений. Я хотел бы сохранить их в .NetFramework.
Один из моих главных вопросов:
- Может ли приложение в .Net Core (например, WebApi, IdentityServer4) и App / Dlls in. NetFramework использует одну и ту же базу данных для идентификации (логин, членство и т. Д.). Другими словами, «microsoft.aspnet.identity» и «microsoft.aspnetcore.identity» совместимы (в отношении базы данных), если они используются в различных приложениях / библиотеках.
- Или мне нужно использовать одно из Identity-Namespaces во всех приложениях / библиотеках для совместимости? (и, следовательно, ДОЛЖНЫ использовать одну и ту же платформу во всех приложениях / библиотеках)
Надеюсь, это было кратко и достаточно ясно, чтобы описать мою проблему. Пожалуйста, дайте мне знать, если что-то неясно.
Обновление Я только что нашел это сообщение Microsoft.AspNet.Identity и Microsoft.AspNet.Identity.EntityFramework в .NET Standard 2.0 Возможно, использование стандарта .Net во всех DLL может быть вариантом. Я попробую это и увижу, у меня это получится. Но я все еще не понимаю, работают ли «microsoft.aspnet.identity» и «microsoft.aspnetcore.identity» в стандартной библиотеке .Net.
Результат: я смог использовать «Microsoft.AspNetCore».Identity "," Microsoft.EntityFrameworkCore "в библиотеке .Net Standard 2.1 (Microsoft .EntityFrameworkCore поддерживается в .Net Standard 2.1 и net Core 3.0). Так что это хорошая новость (мне не нужно переносить все библиотеки DLL на .Net Core только для идентификации. Переход на стандарт .Net был бы достаточен). Но Я не могу сослаться на эту .Net Standard 2.1 DLL в .Net Framework DLL / App, потому что .Net Framework поддерживает ее до .Net Standard 2.0 ... Так что это не решает проблему полностью,но, похоже, это ближе всего к тому, что я хочу сделать.
Update2
Я готов изменить много кода для этого изменения. F.ex. Аутентификация в старом WebApp, чтобы он общался с IdentityServer и удалял все, что связано с System.Web (.Security) во всех проектах. Одна вещь, которая все еще смущает меня, является "microsoft.aspnet.identity" против "microsoft.aspnetcore.identity". Должен ли я выбрать один из них для всех проектов или я могу смешать эти пространства имен (в зависимости от структуры проектов), но просто сохранить одну базу данных.
Update3 Я отметил ответ, потому чтоэто помогло ответить на мой основной вопрос («это не возможно»). Я постараюсь это реализовать и увижу, что на поверхности будет больше проблем. Но если у кого-то есть больше идей / опыта по этой теме, пожалуйста, не стесняйтесь поделиться этим здесь.
Некоторые из источников, которые я использовал: