Один из способов справиться с этим - использовать собственный заголовок HTTP:
$.ajax({
url: '/home/someaction',
data: {},
success: function(html, status, xhr) {
if (xhr.getResponseHeader('REQUIRES_AUTH') === '1') {
alert('SESSION EXPIRED!!!');
} else {
$('#result').html(html);
}
}
});
И в вашем действии LogOn вы устанавливаете соответствующий заголовок:
public ActionResult LogOn()
{
Response.AddHeader("REQUIRES_AUTH", "1");
return View();
}