asp.net mvc 4 - HOw to implement AJAX session timeout redirect in MVC -
in mvc application, implement session time out redirect functionality.
now, requests done through ajax so, on ajax request, should redirect session timeout page if time out reached.
i tried several approach net did work out.
i not using - [authroize] attribute security. using custom login authentication.
tried below approach not work out. did not reach attribute.
problem is, url gets appended "retrunurl" paramter , not work out.
/// <summary> /// extend authorizeattribute correctly handle ajax authorization /// </summary> [attributeusage(attributetargets.class | attributetargets.method)] public class myauthorizeattribute : authorizeattribute { protected override void handleunauthorizedrequest(authorizationcontext filtercontext) { if (filtercontext.httpcontext.request.isajaxrequest()) { filtercontext.httpcontext.response.statuscode = 401; filtercontext.result = new jsonresult { info = new { error = “notauthorized”, logonurl = formsauthentication.loginurl }, jsonrequestbehavior = jsonrequestbehavior.allowget }; filtercontext.httpcontext.response.end(); } else { // standard request, allow parent filter handle base.handleunauthorizedrequest(filtercontext); } } } now, need modify our client sciptt handle 401 response code: getdata = function(request) { $.ajax({ url: “/home/getdata”, type: “post”, data: request, contenttype: “application/json;”, datatype: “json”, success: function (repjson) { }, error: function (xhr) { if (xhr.status === 401) { window.location.href=xhr.data.logonurl; return; } } }); please guide how resolve this.
ajax asp.net-mvc-4 model-view-controller session-timeout action-filter
No comments:
Post a Comment