Формы аутентификации:как указать разные имена файлов cookie для определенных подкаталогов/контроллеров MVC?
-
02-10-2019 - |
Вопрос
Я использую FormsAuthentication (с файлами cookie) для аутентификации пользователей с именем файла cookie по умолчанию (".ASPXAUTH").
Мне нужна другая система входа в виртуальный каталог «/Admin/» (поддерживаемая контроллером ASP.NET MVC «AdminController»)...как если бы каталог «/Admin/» был другим веб-приложением, но без создания другого веб-проекта внутри моего решения.
Как я могу настроить во время выполнения имя файла cookie, используемое FormsAuthentication?FormsAuthentication.FormsCookieName доступен только для чтения (и статический...) и может быть настроен только один раз внутри файла web.config...
Должен ли я создать собственный FormsAuthenticationModule?
Фильтр контроллера, подобный следующему, может быть полезен:
[CustomFormsAuthenticationCookie("NewCookieName")]
public class AdminController : Controller
{
Решение
Хитрость заключается в том, что базовая структура аутентификации действительно не может справиться с этим - вы не можете использовать несколько битов аутентификации с помощью форм.Самым простым решением было бы выделить часть административной части на отдельный веб-сайт, который в конечном итоге будет жить в другом месте и не будет заниматься аутентификацией общедоступного сайта.