public ActionResult Login(LoginModel Model) { if (ModelState.IsValid) { LinkedList <rrUser> llUser = rrUserDB.GetUser(LoginName: Model.LoginName, Password: Model.Password); if (llUser.Count == 1) { rrUser User = llUser.First.Value; CurrentUser = User; var AuthTicket = new FormsAuthenticationTicket( 1, User.UserId.ToString(), DateTime.Now, DateTime.Now.AddMinutes(20), false, User.Role ); string EncryptedTicket = FormsAuthentication.Encrypt(AuthTicket); var AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, EncryptedTicket); HttpContext.Response.Cookies.Add(AuthCookie); return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "Пользователя с таким логином и паролем нет"); } return(View()); }
public RegisterModel(rrUser User) { FirstName = User.FirstName; LastName = User.LastName; LoginName = User.LoginName; Password = User.Password; Email = User.Email; }
public ActionResult Reply(int id, string ReplyText) { rrUser User = (rrUser)Session["User"]; if (User == null) { ViewData["ErrorMessage"] = string.Format("Вы не зарегистрированы"); return(View("Error")); } LinkedList <rrForumThread> llThread = rrForumThreadDB.GetForumThread( ForumId: rrForumThreadDB.ForumId, ThreadId: id); if (llThread.Count == 0) { ViewData["ErrorMessage"] = string.Format("Тема не найдена"); return(View("Error")); } rrForumThread ForumThread = llThread.First.Value; rrForumThreadDB.InsertForumThread(ForumId: rrForumThreadDB.ForumId, UserId: User.UserId, Title: ForumThread.Title, ThreadParentId: ForumThread.ThreadId, Description: Uri.UnescapeDataString(ReplyText), FileName: null); LinkedList <rrForumThread> llThreads = rrForumThreadDB.GetForumThread(ForumId: rrForumThreadDB.ForumId, StartThreadId: id); ForumThread[] arrModel = new ForumThread[llThreads.Count]; int i = 0; foreach (rrForumThread Thread in llThreads) { arrModel[i] = new ForumThread(Thread); i++; } return(View("Details", arrModel)); }
public ActionResult Register(RegisterModel Model) { if (ModelState.IsValid) { if (!rrUserDB.CheckLoginExists(LoginName: Model.LoginName)) { // создаем нового пользователя int NewUserId = rrUserDB.InsertUser(FirstName: Model.FirstName, LastName: Model.LastName, Email: Model.Email, LoginName: Model.LoginName, Password: Model.Password); LinkedList <rrUser> llUser = rrUserDB.GetUser(UserId: NewUserId); rrUser User = llUser.First.Value; CurrentUser = User; var AuthTicket = new FormsAuthenticationTicket( 1, User.UserId.ToString(), DateTime.Now, DateTime.Now.AddMinutes(20), false, User.Role ); string EncryptedTicket = FormsAuthentication.Encrypt(AuthTicket); var AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, EncryptedTicket); HttpContext.Response.Cookies.Add(AuthCookie); return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "Пользователь с таким логином уже существует"); } return(View(Model)); }
protected override void OnActionExecuting( ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (Session == null || CurrentUser == null) { if (User.Identity.IsAuthenticated) { int UserId = int.Parse(User.Identity.Name); LinkedList <rrUser> llUser = rrUserDB.GetUser(UserId); if (llUser.Count == 1) { CurrentUser = llUser.First.Value; } else { throw new ApplicationException($"User with Id {UserId} was not found"); } } } }