Я знаю эту тему придумал много, но я не нашел тот, который работает для моей проблемы ..HttpContext.Current.Session Всегда Null
У меня есть GuestTokenValidationAttribute класс, производный от ActionFilterAttribute, там Я получаю токен из заголовка, и я использую его как токен String. Затем я хочу добавить этот токен к сеансу, но независимо от того, что я делаю, Session всегда равно нулю.
Пожалуйста, ребята, какие-либо указания или помощь будет высоко ценятся,
Пример кода ниже:
public class GuestTokenValidationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
string token;
try
{
token = actionContext.Request.Headers.GetValues("Authorization-Token").First();
}
catch (Exception)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("Unauthorized User")
};
return;
}
if(string.IsNullOrEmpty(token))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("Unauthorized User")
};
return;
}
try
{
var repository = DependencyResolver.Current.GetService<IRepository<Guest>>();
var guest = repository.GetAll().FirstOrDefault(x => x.Token == token);
if(guest == null)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("Unauthorized User")
};
return;
}
}
catch (Exception)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("Unauthorized User")
};
return;
}
HttpContext.Current.Session.Add("guesttoken" ,token);
base.OnActionExecuting(actionContext);
}
У вас сеансы включены в web.config ? – RononDex
У меня есть –
Это в контроллере API? –