#c# #iis #asp.net-identity #blazor-server-side #httpcontext
Вопрос:
Я создал базу данных с помощью efcore, используя asp.net структура идентификации для моих пользователей и ролей с небольшими изменениями. Я хотел бы, чтобы пользователь подключился к моему сайту и мог войти в систему со своими учетными данными, хранящимися в базе данных. Когда я размещаю свое серверное приложение Blazor в IIS, отображается моя пользовательская страница входа в систему, которая позволяет пользователю вводить учетные данные. Однако «пользователь» httpcontext является нулевым при проверке подлинности. Приложение, очевидно, работает нормально, когда я загружаю его через visual studio, и проблема, похоже, связана только с проверкой подлинности IIS.
Комментарии:
1. Вам следует проверить режим проверки подлинности, настроенный в IIS для вашего сайта. По умолчанию некоторые режимы не включены. Вам нужно будет убедиться, что используемый вами режим включен и доступен в вашем IIS.
2. Вам необходимо отключить анонимную проверку подлинности и включить проверку подлинности Windows.
3. Проблема, с которой я сталкиваюсь здесь, заключается в том, что я использую адрес электронной почты пользователя для входа в его учетную запись. их учетная запись Windows не содержит этой информации.
4. Можете ли вы показать код о функции входа в систему и о том, как получить пользователя?
5. Я смог заставить это работать, используя анонимную аутентификацию и без олицетворения. Решение состояло в том, чтобы удалить мои звонки пользователю из HttpContext и вместо этого получить пользователя из AuthenticationStateProvider. Спасибо всем вам за вашу помощь!
Ответ №1:
Я смог заставить это работать, используя анонимную аутентификацию и без олицетворения. Решение состояло в том, чтобы удалить мои вызовы для пользователя из HttpContext и вместо этого получить пользователя из AuthenticationStateProvider в Blazor.