예제 #1
0
 /*
  * Метод возвращает имя функции поставленой задачи пользователю с ником login.
  * Входные параметры:
  * строка с логином пользователя.
  * Выходные параметры:
  * строка с именем функции. Если ошибка, то строка равна null.
  */
 public string getFunc(string login)
 {
     try
     {
         Models.DatabaseMediator db = new Models.DatabaseMediator(System.Web.HttpContext.Current.Server.MapPath("~"));//обращаемся к базе
         Models.User             u  = db.getUserByLogin(login);
         Models.Task             t  = u.getTask();
         return(t.getFunctionName());
     }
     catch (Exception)
     {
         return(null);
     }
 }
예제 #2
0
 /*
  * Метод возвращает идентификатор пользователя с ником login, если ему была поставлена задача.
  * Входные параметры:
  * строка с логином пользователя.
  * Выходные параметры:
  * строка с идентификатором пользователя. Если ошибка, то строка равна null.
  */
 public string getUserIdWithTask(string login)
 {
     try
     {
         Models.DatabaseMediator db = new Models.DatabaseMediator(System.Web.HttpContext.Current.Server.MapPath("~"));//обращаемся к базе
         Models.User             u  = db.getUserByLogin(login);
         if (u.getTask() != null)
         {
             return(u.getId().ToString());
         }
         else
         {
             return(null);
         }
     }
     catch (Exception)
     {
         return(null);
     }
 }
예제 #3
0
        public ActionResult Login(string username, string password)
        {
            try
            {
                SHA256Managed          hash      = new SHA256Managed();
                byte[]                 hashBytes = hash.ComputeHash(Encoding.UTF8.GetBytes(username + password));
                string                 hashStr   = BitConverter.ToString(hashBytes).Replace("-", "");
                System.IO.StreamReader file      = new System.IO.StreamReader(new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Users.txt"),
                                                                                             FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite));
                string line;
                while ((line = file.ReadLine()) != null)
                {
                    if (line != "")
                    {
                        string[] logins = line.Split(' ');
                        if (hashStr == logins[1])
                        {
                            Models.DatabaseMediator db = new Models.DatabaseMediator(System.Web.HttpContext.Current.Server.MapPath("~"));//обращаемся к базе
                            Models.User             u  = db.getUserByLogin(logins[0]);
                            db.setUserLastActivity(u.getId(), DateTime.UtcNow);
                            System.Web.HttpContext.Current.Session["user_id"] = u.getId(); //выцыганиваем id из базы
                            HttpContext.Response.Cookies["user"].Value        = "id=" + u.getId().ToString();
                            db.close();                                                    //закрыли базу
                            FormsAuthentication.SetAuthCookie(username, false);
                            HttpContext.Response.Cookies["login"].Value = username;
                            System.IO.StreamReader file1 = new System.IO.StreamReader(new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/OnlineUsers.txt"),
                                                                                                     FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite));
                            List <KeyValuePair <string, string> > users = new List <KeyValuePair <string, string> >();
                            string line1;
                            while ((line1 = file1.ReadLine()) != null)
                            {
                                if (line1 != "")
                                {
                                    string[] str = line1.Split(' ');
                                    users.Add(new KeyValuePair <string, string>(str[0], str[1]));
                                }
                            }
                            file1.Close();
                            System.IO.StreamWriter file2 = new System.IO.StreamWriter(new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/OnlineUsers.txt"),
                                                                                                     FileMode.Truncate, FileAccess.ReadWrite, FileShare.ReadWrite));
                            users.Add(new KeyValuePair <string, string>(username, Request.UserHostAddress));
                            string result = "";
                            foreach (var str in users)
                            {
                                result += str.Key + " " + str.Value + "\n";
                            }
                            file2.Write(result);
                            file2.Close();

                            file.Close();
                            return(View("Master"));
                        }
                    }
                }
                file.Close();
                return(View("Index"));
            }
            catch (Exception e)
            {
                System.IO.File.AppendAllText(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/log.txt"), e.Message);
                ViewBag.MessagerFromControl = "Произошла ошибка, зайдите позже.";
                return(View("Index"));
            }
        }