У меня есть сайт ASP.NET MVC с сервером CAS, настроенным в качестве типа аутентификации.У меня также есть отдельная база данных с таблицей Users и таблицей Roles (с привязкой User к одной или нескольким ролям).Пользователь может войти в систему только в том случае, если имя пользователя указано в таблице «Пользователь» и в системе CAS.У меня есть это решение работает.
Моя проблема в том, что мне сейчас нужна какая-то форма триггера для User.IsAuthenticated, чтобы я мог отслеживать текущего пользователя (из моей базы данных), без возможности того, что я пытаюсь разрешить отслеживание пользователя, который вышел из системы,Я думал о том, что мне нужно добавить пользователя в HttpContext, но я не уверен, как запустить очистку пользователя, если время сеанса CAS истекло или пользователь вышел из системы.
Я также хотел бы иметь некоторые функциональные возможности, такие как User.IsInRole (снова используя мою базу данных, а не ASP.NET), но я не уверен, как это осуществить.Я полагаю, что если я смогу успешно добавить пользователя в HttpContext, то метод IsInRole будет просто методом User.Roles.Contains (string role), но как его можно использовать, если, например, я хочу использовать метод сDataAnnotation [Authorize (role = "ExampleRole")].
Я смотрел на такие вопросы, как Как мне создать пользовательский поставщик членства для ASP.NET MVC 2? , но это не работает для меня (возможно, со мной, используяАутентификация CAS?)
Буду признателен за любые рекомендации или справочные материалы, так как я действительно не уверен, с чего мне вообще начинать.Я прочитал о GenericPrinciple, IPrinciple и IIdentity, но я изо всех сил пытаюсь понять, как я могу применить их к моему текущему проекту.