У меня есть приложение ASP.NET, которое отправляет файл cookie аутентификации в приложение ASP.NET MVC, используемое в качестве приложения бэк-офиса.
Я добавил глобальный фильтр, который проверяет каждое действие контроллера на наличие файла cookie аутентификации. Если файл cookie существует, он позволяет пользователю войти на страницу.
Код выглядит следующим образом:
public class SecurityFilter : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
// TODO: For some reason .AUTHCookie cookie isn't exist in request context of filter,
HttpCookie cookie = filterContext.RequestContext.HttpContext.Request.Cookies[".AUTHCookie "];
if (cookie != null) {
С другой стороны я вижу файл cookie, отправленный из приложения ASP.NET в событии Application_BeginRequest
в файле Global.asax.
Куда и почему пропала кука? В какой части конвейера обработки запросов MVC файл cookie был удален?
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cookies = HttpContext.Current.Request.Cookies;
// HERE I CAN SEE BOTH cookies. In filter action only one cookie was found. The authentication cookie is thrown somewhere ...
}
DateTime.UtcNow.AddDays(1);
Возможно, браузер считает, что срок действия файла cookie истек с датой и временем, как указано выше. - person Nick   schedule 12.11.2012