Я пишу приложение ASP.NET MVC 2.0, которое требует от пользователей входа в систему, прежде чем делать ставку на предмет. Я использую actionfilter, чтобы убедиться, что пользователь вошел в систему и, если нет, отправить его на страницу входа и установить URL-адрес возврата. Ниже приведен код, который я использую в своем фильтре действий.
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.Result = new RedirectResult(String.Concat("~/Account/LogOn","?ReturnUrl=",filterContext.HttpContext.Request.RawUrl));
return;
}
В контроллере входа в систему я проверяю учетные данные пользователей, затем регистрирую их и перенаправляю на возвращаемый URL
FormsAuth.SignIn(userName, rememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
Моя проблема в том, что при этом всегда будет использоваться запрос Get (HttpGet), в то время как моя первоначальная отправка была постом (HttpPost) и всегда должна быть постом. Кто-нибудь может предложить способ передачи этого URL, включая HttpMethod или любой обходной путь, чтобы убедиться, что используется правильный HttpMethod?