Существует проблема, с которой я столкнулся, я использую nginx для реализации балансировки нагрузки. Я использую HttpContext.Current.User.Identity.IsAuthenticated
+ распределенного кэша Redis сказать серверу пользователь вошел в систему.HttpContext.Current.User.Identity.IsAuthenticated = false всегда в среде Nginx
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated && RedisSession.IsExistKey("Username"))
//HttpContext.Current.Session["Username"] == null
{
base.OnAuthorization(filterContext);
}
}
Я обнаружил, что кэш Redis хорошо, но httpContext.Current.User.Identity.IsAuthenticated
правда в одном из сайтов. На другом сайте он всегда возвращает false.
Например: я сопоставил два веб-сайта IIS с использованием другого порта, используя nginx, когда обновляю тестовую страницу, это даст мне другой ответ.
Спасибо.
Вы вошли в систему в своем приложении? Для того чтобы HttpContext.User.Identity.IsAuthenticated был прав, вы должны добавить пользователя в IdentityStore в какой-то момент. Посмотрите здесь пример того, как это делается в Mvc https://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-web-app-with-email-confirmation- and-password-reset # require – Alex
@Alex Я сделал это, но он может войти только на один сайт, а в другом - False. – MapleStory