private void DoLogin(Account account) { Guid token = Guid.NewGuid(); AccountAccessRecord previousRecord = account.AccountAccessRecords.FirstOrDefault(r => r.Source == Request.UserHostAddress); if (previousRecord != null) { DataContext.AccountAccessRecords.DeleteOnSubmit(previousRecord); DataContext.SubmitChanges(); } AccountAccessRecord record = new AccountAccessRecord() { ActiveDate = DateTime.Now, Account = account, Source = Request.UserHostAddress, Token = token }; DataContext.AccountAccessRecords.InsertOnSubmit(record); DataContext.SubmitChanges(); HttpCookie at = new HttpCookie("AToken", token.ToString()); at.Expires = DateTime.Now.AddHours(12); Response.SetCookie(at); HttpCookie vt = new HttpCookie("VToken", ""); vt.Expires = DateTime.Now.AddDays(-1d); Response.SetCookie(vt); }
public IHttpActionResult TrySignIn(LoginDataModel dataModel) { try { Account account = DataContext.Accounts.FirstOrDefault( ac => ac.Login == dataModel.Login && ac.Hash == dataModel.Password.MD5()); if (account == null) { return(Ok(new AuthModel() { Message = "Login or password incorrect" })); } Guid token = Guid.NewGuid(); string adr = ""; if (Request.Properties.ContainsKey("MS_HttpContext")) { adr = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress; } AccountAccessRecord previousRecord = account.AccountAccessRecords.FirstOrDefault(r => r.Source == adr); if (previousRecord != null) { DataContext.AccountAccessRecords.DeleteOnSubmit(previousRecord); DataContext.SubmitChanges(); } AccountAccessRecord record = new AccountAccessRecord() { ActiveDate = DateTime.Now, Account = account, Source = adr, Token = token }; DataContext.AccountAccessRecords.InsertOnSubmit(record); DataContext.SubmitChanges(); return(Ok(new AuthModel() { IsAdmin = account.IsAdmin, Name = account.Login, Token = token.ToString(), IsVisitor = false })); } catch (Exception e) { return(InternalServerError(e)); } }
public ActionResult SignOut() { AccountAccessRecord previousRecord = CurrentUser?.AccountAccessRecords.FirstOrDefault(r => r.Source == Request.UserHostAddress); if (previousRecord != null) { DataContext.AccountAccessRecords.DeleteOnSubmit(previousRecord); DataContext.SubmitChanges(); HttpCookie at = new HttpCookie("AToken", ""); at.Expires = DateTime.Now.AddDays(-1d); Response.SetCookie(at); } return(RedirectToAction("Index", "Home")); }
public IHttpActionResult SignOut() { if (CurrentUser == null) { return(Unauthorized()); } string adr = ""; if (Request.Properties.ContainsKey("MS_HttpContext")) { adr = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress; } AccountAccessRecord previousRecord = CurrentUser?.AccountAccessRecords.FirstOrDefault(r => r.Source == adr); if (previousRecord != null) { DataContext.AccountAccessRecords.DeleteOnSubmit(previousRecord); DataContext.SubmitChanges(); } return(Ok()); }