Используя ASP.NET MVC 5, я хотел бы вернуть соответствующий код состояния HTTP для разных сценариев (401 для пользователя не аутентифицирован, 403, когда пользователь не имеет права на какой-либо ресурс и т. Д. .), затем обработайте их в jQuery.HttpStatusCodeResult (401) возвращает «200 OK»
Но проблема в том, что когда я пытаюсь вернуть 401, он всегда возвращает «200: OK». MVC 5 RC1 давал «302: Найдено» вместо 401, поэтому я мог использовать обходное решение (HttpStatusCodeResult(401) returns "302 Found"). Но теперь я перешел из MVC 5 RC1 в MVC 5, и это поведение изменилось. Теперь это всегда «200: OK». Поэтому мое обходное решение бесполезно, конечно, я не могу заменить ни на что другое.
public ActionResult My()
{
if (User.Identity.IsAuthenticated == false)
{
return new HttpStatusCodeResult(401, "User is not authenticated.");
// Returns "200: OK"
}
// ... other code ...
}
Как это решить?
показать нам некоторые примеры кода, где используют 401 таким образом, мы можем помочь вам. Нет кода == нет помощи. – Haney
Код в моем предыдущем вопросе, который я связал. Но теперь я буду вставлять его здесь, а также по вашему запросу. –
Вы не должны явно проверять «User.Identity.IsAuthenticated». Аутентификация в ASP.NET MVC обычно выполняется с атрибутами; вам следует применить атрибут Authorize к вашему методу. –