javascript - Getting logout after refresh of page -
i have asp.net application communicates api.
i have problem authentication - works fine. logged in, when refresh page logged out.
i not sure code loggin. have idea how better? need authorize against rest api.
this login form:
@using (ajax.beginform("loginuser", "api/user", new ajaxoptions { httpmethod = "get", oncomplete = "onlogincompleted", loadingelementid = "loadingimage" })) { <fieldset class="login-form-box"> <table> <tr> <td class="login-label-box">@html.label("username")</td> <td class="login-label-box">@html.label("password")</td> <td></td> </tr> <tr> <td >@html.textbox("username", null, new {@class = "login-inout"})</td> <td>@html.password("password", null, new {@class = "login-inout"})</td> <td><input type="submit" value="login" /></td> </tr> <tr> <td></td> <td></td> <td>@ajax.actionlink("register", "mainbodycontentpartial", new ajaxoptions() { updatetargetid = "contentbox", insertionmode = insertionmode.replace, httpmethod = "get", oncomplete = "oncontentchanged" })</td> </tr> </table> </fieldset> }
here apicontroller called ajax.form:
[httpget] [route("loginuser")] [system.web.mvc.requirehttps] public user loginuser(string username, string password) { if(username == null || password == null) { return null; } string hashedpassword = gethashstring(password); var selecteduser = databaseservice.inst.getuserbyusernameandpassword(username, hashedpassword); if(selecteduser == null) { return null; } formsauthentication.setauthcookie(username, true); if (!roles.isuserinrole(selecteduser.role)) { var userroles = roles.getrolesforuser(selecteduser.username); if (userroles != null && userroles.any()) { roles.removeuserfromroles(selecteduser.username, userroles); } roles.addusertorole(selecteduser.username, selecteduser.role); } selecteduser.password = ""; return selecteduser; }
and here javascript code called when authorization completed:
function onlogincompleted(result) { displaywaiting(); var loggeduser = result.responsejson; if (!loggeduser) { displaystatusmessage("login failed."); return; } displaystatusmessage("you logged in " + loggeduser.username); $('#mainloginformbox').load(url + '/content/loggedusercontentpartial'); $('#navigationmenu').load(url + '/content/usermenucontentpartial'); $('#contentbox').load(url + '/content/userhomecontentpartial'); oncontentchanged(); hidewaiting(); return;
}
Comments
Post a Comment