Здравствуйте, Sufflavus, Вы писали:
S>Не пробовали в настройках ajax-запроса указать тип возвращаемых данных — json, и вместо HttpStatusCodeResult(401) возвращать JsonResult и анализировать его на клиенте?
S>S>if (Request.IsAjaxRequest())
S>{
S> return new JsonResult { Data = { errorCode = "401" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
S>}
S>
Спасибо за идею

попробовали, действительно редирект непроисходит!
Но, хотелось бы понять почему в этом случае нет редиректа и есть в случае когда мы сразу возвращаем нужный статус код...
И всё таки хотелось бы в случае успешного логина возвращать статус код=200 с сообщением об успешности. А в случае неуспешного возвращать 401 и сообщение об неуспешности. Такое поведение мне кажется лучше отражает суть происходящего. Предложенный способ позволяет победить редирект, но вынуждает изменить семантику метода (в случае неуспеха возвращать статус код) и выглядит как workaround...