Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 public RegisterModel(rrUser User)
 {
     FirstName = User.FirstName;
     LastName  = User.LastName;
     LoginName = User.LoginName;
     Password  = User.Password;
     Email     = User.Email;
 }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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");
                    }
                }
            }
        }