В приложении MVC я выполнил большую часть вызовов операций CRUD с использованием AJAX.HOw перенаправить страницу тайм-аута сессии, когда вызов AJAX
Проблема заключается в том, что когда сеанс получает тайм-аут, он не может перенаправить на страницу сеанса.
Ниже приведен код, который отлично работает при отсутствии вызова AJAX.
[AttributeUsage(AttributeTargets.Class)] //| AttributeTargets.Method
public class ControllerLogAndAccessFilter : FilterAttribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
\\check if session is null then redirect to session time out page.
}
}
Для входа в систему, я просто проверяю данные на databsae, нет ничего для поставщика memebrship.
[HttpPost]
public JsonResult Login(string username, string password, bool RememberMe)
{
try
{
UserDTO accDTO = new UserDTO()
{
UsernAme = username,
Password = DataEncryption.EncryptPassword(password)
};
UserDTO AccDTO = _iAccount.UserAuthentication(accDTO);
if (AccDTO != null)
{
Session["UserId"] = 1;
Session["userdto_Session"] = AccDTO;
// Remember me
HttpCookie myCookie = new HttpCookie("appCookie");
//chkRememberMe.Checked;
if (RememberMe)
{
myCookie.Values.Add("username", username);
myCookie.Values.Add("password", password);
myCookie.Expires = DateTime.Now.AddMinutes(20);
}
else
{
myCookie.Values.Add("username", string.Empty);
myCookie.Values.Add("password", string.Empty);
myCookie.Expires = DateTime.Now.AddMinutes(5);
}
Response.Cookies.Add(myCookie);
// Remember me
return Json(AccDTO.SID, JsonRequestBehavior.AllowGet);
}
else
{
return Json(null);
}
}
catch (Exception ex)
{
}
return null;
}
AJAX вызов производится для Логина и все операции CRUD используют $.AJAX({...});
.
Показать код для АЯКС вызова – ssilas777
проверки это сообщение: HTTP : //stackoverflow.com/questions/26638368/asp-net-mvc-redirect-out-of-a-partial-view-from-controller-to-a-full-view-from-a –
@EhsanSajjad Я использую нормальный lo gin - аутентификация в базе данных. поэтому атрибут [Авторизовать] нельзя обрабатывать или работать, как указано выше в ссылке stackoverflow. – dsi