コード例 #1
0
 public static void Load()
 {
     Users.Clear();
     Directory.CreateDirectory("OMCLC\\Users");
     foreach (string file in Directory.GetFiles("OMCLC\\Users"))
     {
         if (file.EndsWith(".auth"))
         {
             try
             {
                 JObject obj = JObject.Parse(DESCode.Decrypt(File.ReadAllText(file)));
                 //   System.Windows.Forms.MessageBox.Show(obj.ToString());
                 string  type  = obj["type"].ToString();
                 JObject value = obj["value"] as JObject;
                 User    user  = Parsers[type];
                 User    u     = user.ParseFromJObject(value);
                 // System.Windows.Forms.MessageBox.Show(u.SaveToObject().ToString());
                 Users.Add(u);
             }
             catch (Exception ex)
             {
                 Logger.LogError("Failed to Load Auth File " + file + ", Exceptions:\n" + ex.Message + "\n" + ex.StackTrace);
             }
         }
     }
     // System.Windows.Forms.MessageBox.Show("AAA");
 }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: Jason235/BOC
        public IHttpActionResult ForgetPassword(string UserName, string Email)
        {
            DESCode lDESCode = new DESCode();

            string en = lDESCode.EncryptDES("jason.wang");

            string de = lDESCode.DecryptDES(en);

            //SendEmail.SendSupportEmail("*****@*****.**", "Password recovery", "<strong>Recovering the password</strong>");
            return Ok();
        }
コード例 #3
0
        public ActionResult ChangePwd(ChangePwdModel passwordToChange)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            string superAdmin = Session["waveAccount"].ToString();
            var    account    = (from m in _db.SuperAdmin
                                 where m.supname == superAdmin
                                 select m).First();

            string key = account.supname;

            while (key.Length < 8)
            {
                key = key + key;
            }

            if (DESCode.DecryptDES(account.spasswd, key) != passwordToChange.original)
            {
                TempData["ErrorMessage"] = "Your original passwords do not match, please retype it and try again. ";
                return(View());
            }
            else if (passwordToChange.password != passwordToChange.confirmPwd)
            {
                TempData["ErrorMessage"] = "Your new passwords do not match, please retype them and try again. ";
                return(View());
            }
            else
            {
                account.spasswd = DESCode.EncryptDES(passwordToChange.password, key);

                try
                {
                    _db.ApplyCurrentValues <SuperAdmin>(account.EntityKey.EntitySetName, account);
                    _db.SaveChanges();
                    TempData["SuccessMessage"] = "Your password has been sucessfully changed.";
                    return(RedirectToAction("Index"));
                }
                catch (Exception exception)
                {
                    TempData["ErrorMessage"] = "Password change has failed because: " + exception.Message;
                    return(View());
                }
            }
        }
コード例 #4
0
ファイル: AdminController.cs プロジェクト: SysMa/ooadp-wave
        public ActionResult CreateOrg(Org orgToCreate)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            try
            {
                var org = (from m in _db.Org
                           where m.orgname == orgToCreate.orgname
                           select m);

                if (org.Count() != 0)
                {
                    TempData["ErrorMessage"] = "Org name exists! ";
                    return(View());
                }
                if (orgToCreate.opasswd != Request.Form["ConfirmPassword"])
                {
                    TempData["ErrorMessage"] = "Org creation failed! Passwords must match, please re-enter and try again.";
                    return(View());
                }
                string key = orgToCreate.orgname;
                while (key.Length < 8)
                {
                    key = key + key;
                }
                orgToCreate.opasswd = DESCode.EncryptDES(orgToCreate.opasswd, key);
                orgToCreate.oscore  = 0;
                _db.AddToOrg(orgToCreate);
                _db.SaveChanges();
                TempData["SuccessMessage"] = "Org creation succeeds!";
                return(RedirectToAction("Orgs"));
            }
            catch (Exception exception)
            {
                TempData["ErrorMessage"] = "Org creation has failed because: " + exception.Message;
                return(View());
            }
        }
コード例 #5
0
        public ActionResult Create(Admin adminToCreate)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            try
            {
                var admin = (from m in _db.Admin
                             where m.adminname == adminToCreate.adminname
                             select m);
                if (admin.Count() != 0)
                {
                    TempData["ErrorMessage"] = "Administrator name exists, please retype it and try again! ";
                    return(View());
                }
                if (adminToCreate.apasswd != Request.Form["ConfirmPassword"])
                {
                    TempData["ErrorMessage"] = "Administrator creation failed! Passwords must match, please re-enter and try again.";
                    return(View());
                }
                string key = adminToCreate.adminname;
                while (key.Length < 8)
                {
                    key = key + key;
                }
                adminToCreate.apasswd = DESCode.EncryptDES(adminToCreate.apasswd, key);
                _db.AddToAdmin(adminToCreate);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            catch (Exception exception)
            {
                TempData["ErrorMessage"] = "Administrator creation has failed because: " + exception.Message;
                return(View());
            }
        }
コード例 #6
0
        public static void SaveALL()
        {
            foreach (User user in Users)
            {
                try
                {
                    JObject obj = new JObject();
                    obj["type"]  = user.ParserName;
                    obj["value"] = new JObject();
                    obj["value"] = user.SaveToObject();
                    File.WriteAllText("OMCLC\\Users\\" + user.UserName + ".auth", DESCode.Encrypt(obj.ToString()));
                }
                catch (Exception ex)
                {
                    Logger.LogError("Failed to Save User " + user.UserName + ", Exceptions:\n" + ex.Message + "\n" + ex.StackTrace);
                }
            }

            JObject sel = new JObject();

            sel["select"] = SelectUser.UserName;
            File.WriteAllText("OMCLC\\Users\\select.json", sel.ToString());
        }
コード例 #7
0
ファイル: MainController.cs プロジェクト: SysMa/ooadp-wave
        public ActionResult Login(LoginModel toCheck)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Main"));
            }
            try
            {
                switch (toCheck.type)
                {
                case 0:
                {
                    var account = (from m in _db.SuperAdmin
                                   where m.supname == toCheck.account
                                   select m);
                    if (account.Count() == 0)
                    {
                        TempData["ErrorMessage"] = "Check your account, please! ";
                        return(RedirectToAction("Main"));
                    }
                    else
                    {
                        string key = account.First().supname;
                        while (key.Length < 8)
                        {
                            key = key + key;
                        }
                        if (DESCode.DecryptDES(account.First().spasswd, key) != toCheck.password)
                        {
                            TempData["ErrorMessage"] = "Check your password, please! ";
                            return(RedirectToAction("Main"));
                        }
                        else
                        {
                            Session["waveAccount"] = toCheck.account;
                            Session["waveType"]    = toCheck.type;
                            return(RedirectToAction("Index", "SuperAdmin"));
                        }
                    }
                }
                break;

                case 1:
                {
                    var account = (from m in _db.Admin
                                   where m.adminname == toCheck.account
                                   select m);
                    if (account.Count() == 0)
                    {
                        TempData["ErrorMessage"] = "Check your account, please! ";
                        return(RedirectToAction("Main"));
                    }
                    else
                    {
                        string key = account.First().adminname;
                        while (key.Length < 8)
                        {
                            key = key + key;
                        }
                        if (DESCode.DecryptDES(account.First().apasswd, key) != toCheck.password)
                        {
                            TempData["ErrorMessage"] = "Check your password, please! ";
                            return(RedirectToAction("Main"));
                        }
                        else
                        {
                            Session["waveAccount"] = toCheck.account;
                            Session["waveType"]    = toCheck.type;
                            return(RedirectToAction("Index", "Admin"));
                        }
                    }
                }
                break;

                case 2:
                {
                    var account = (from m in _db.Org
                                   where m.orgname == toCheck.account
                                   select m);
                    if (account.Count() == 0)
                    {
                        TempData["ErrorMessage"] = "Check your account, please! ";
                        return(RedirectToAction("Main"));
                    }
                    else
                    {
                        string key = account.First().orgname;
                        while (key.Length < 8)
                        {
                            key = key + key;
                        }
                        if (DESCode.DecryptDES(account.First().opasswd, key) != toCheck.password)
                        {
                            TempData["ErrorMessage"] = "Check your password, please! ";
                            return(RedirectToAction("Main"));
                        }
                        else
                        {
                            if (account.First().ostate == -1)
                            {
                                account.First().ostate = 0;
                                _db.ApplyCurrentValues <Org>(account.First().EntityKey.EntitySetName, account.First());
                                _db.SaveChanges();
                            }

                            Session["waveAccount"] = toCheck.account;
                            Session["waveType"]    = toCheck.type;
                            return(RedirectToAction("Index", "Org"));
                        }
                    }
                }
                break;

                case 3:
                {
                    var account = (from m in _db.Users
                                   where m.username == toCheck.account
                                   select m);
                    if (account.Count() == 0)
                    {
                        TempData["ErrorMessage"] = "Check your account, please! ";
                        return(RedirectToAction("Main"));
                    }
                    else
                    {
                        string key = account.First().username;
                        while (key.Length < 8)
                        {
                            key = key + key;
                        }
                        if (DESCode.DecryptDES(account.First().upasswd, key) != toCheck.password)
                        {
                            TempData["ErrorMessage"] = "Check your password, please! ";
                            return(RedirectToAction("Main"));
                        }
                        else if (account.First().ustate == 0)
                        {
                            TempData["WarningMessage"] = "Your need to active your account.";
                            return(RedirectToAction("Main"));
                        }
                        else
                        {
                            Session["waveAccount"] = toCheck.account;
                            Session["waveType"]    = toCheck.type;

                            if (account.First().ustate == -1)
                            {
                                account.First().ustate = 1;
                                _db.ApplyCurrentValues <Users>(account.First().EntityKey.EntitySetName, account.First());
                                _db.SaveChanges();
                            }
                            return(Redirect(Request.UrlReferrer.ToString()));
                        }
                    }
                }
                break;

                default:
                    return(View());

                    break;
                }
            }
            catch (Exception exception)
            {
                TempData["ErrorMessage"] = "Login has failed because: " + exception.Message;
                return(RedirectToAction("Main"));
            }
        }
コード例 #8
0
ファイル: MainController.cs プロジェクト: SysMa/ooadp-wave
        public ActionResult Register(Users userToCreate)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            try
            {
                var users = (from m in _db.Users
                             where m.username == userToCreate.username
                             select m);

                if (users.Count() != 0)
                {
                    TempData["ErrorMessage"] = "User name exists! ";
                    return(View());
                }
                if (userToCreate.upasswd != Request.Form["ConfirmPassword"])
                {
                    TempData["ErrorMessage"] = "Registration failed! Your passwords must match, please re-enter and try again.";
                    return(View());
                }

                try
                {
                    string content = System.IO.File.ReadAllText(Server.MapPath("~/NewMemberEmail.txt"));
                    content = content.Replace("[Name]", userToCreate.username);
                    content = content.Replace("[LINK]", "<a href='http://" + Request.Url.Host + ":" + Request.Url.Port + "/User/Activation-" + Server.UrlEncode(userToCreate.username) + "-" + MD5Code.getMd5Hash(userToCreate.username) + "'>^_^Active^_^</a>");
                    content = content.Replace("[UserName]", userToCreate.username);
                    content = content.Replace("[Pwd]", userToCreate.upasswd);

                    if (!SendMail.send(userToCreate.uemail, content, Server, "Active"))
                    {
                        TempData["ErrorMessage"] = "Sorry. The format of your email address can't be recognized.";
                        return(View());
                    }
                    ;
                }
                catch (Exception ex)
                {
                    TempData["ErrorMessage"] = "Registration failed! Check your email again please." + ex.Message;
                    return(View());
                }

                try
                {
                    string key = userToCreate.username;
                    while (key.Length < 8)
                    {
                        key = key + key;
                    }
                    userToCreate.upasswd = DESCode.EncryptDES(userToCreate.upasswd, key);
                    _db.AddToUsers(userToCreate);
                    _db.SaveChanges();
                    TempData["SuccessMessage"] = "Registration succeeds! Your can log in using the new username and password.";
                }
                catch (Exception ex)
                {
                    TempData["ErrorMessage"] = "The databse is unreachable. Try again later." + ex.Message;
                    return(View());
                }

                return(RedirectToAction("Main"));
            }
            catch (Exception exception)
            {
                TempData["ErrorMessage"] = "Registration has failed because: " + exception.Message;
                return(View());
            }
        }
コード例 #9
0
        public IActionResult Post()
        {
            var  files = Request.Form.Files;
            long size  = files.Sum(f => f.Length);
            int  flag  = 0;

            //size > 100MB refuse upload !
            if (size > 104857600)
            {
                flag = 1;
                //return Json("pdf total size > 100MB , server refused !");
            }

            List <string> filePathResultList = new List <string>();

            foreach (var file in files)
            {
                var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.ToString().Trim('"');
                System.IO.File.Delete("licence.txt");

                string filePath = hostingEnv.WebRootPath + $@"/Files/Files/";

                if (!Directory.Exists(filePath))
                {
                    Directory.CreateDirectory(filePath);
                }
                string suffix = fileName.Split('.')[1];
                if (!fileFormatArray.Contains(suffix))
                {
                    flag = 1;
                    //return Json("the file format not support ! you must upload files that suffix like 'pdf'.");
                }
                //fileName = Guid.NewGuid() + "." + suffix;//对上传的文件名加密

                string fileFullName = filePath + "licence.txt";

                using (FileStream fs = System.IO.File.Create(fileFullName))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }


                filePathResultList.Add($"/src/Files/{fileName}");
            }
            if (flag == 1)
            {
                return(Json("Fail"));
            }
            else
            {
                string data = DESCode.Read(hostingEnv.WebRootPath + $@"/Files/Files/licence.txt");

                string licencePostUrl  = url + "api/v1/configuration/public/licence";
                string licencePostData = "{{" +
                                         "\"licence\":\"{0}\"" +
                                         "}}";

                ////对于群组来说,upper_id和area_node_id均固定
                licencePostData = string.Format(licencePostData, data);
                string  licencePostResult = PostUrl(licencePostUrl, licencePostData);
                JObject joLicencePost     = (JObject)JsonConvert.DeserializeObject(licencePostResult);
                if (Convert.ToInt32(joLicencePost["code"]) == 200)
                {
                    return(Json("Success"));
                }
                else
                {
                    return(Json("Error"));
                }

                //return Json(filePathResultList[0].Remove(0, 10));
            }
        }
コード例 #10
0
ファイル: UserAccountController.cs プロジェクト: Jason235/BOC
        public IHttpActionResult ForgetPassword(string UserName, string Email, string Language)
        {
            BOC.Entities.Company lCompany = _BOCWebDBContext.Companys.Where(e => e.LoginUserName == UserName && e.CompanyEmail == Email).FirstOrDefault();
            if(lCompany != null)
            {
                DateTime lNow = DateTime.Now;
                var request = HttpContext.Current.Request;
                DESCode lDESCode = new DESCode();
                string lEncodeStrong = UserName + '|' + lNow.ToShortDateString();
                string Url = "http://" + request.Url.Authority + "/index.html#ResetPassword?UserName="******"&language=" + HttpContext.Current.Server.UrlEncode(Language);
                StringBuilder lEmailBody = new StringBuilder();

                if (Language == "zh-CN")
                {
                    lEmailBody.Append("<center>");
                    lEmailBody.Append("<table width=\"780\" style=\"border:1px solid #d64635;\">");
                    lEmailBody.Append("<thead>");
                    lEmailBody.Append("<tr style=\"background-color:#d64635;color:#FFF;height:34px;\">");
                    lEmailBody.Append("<th>Beef to China</th>");
                    lEmailBody.Append("</tr>");
                    lEmailBody.Append("</thead>");
                    lEmailBody.Append("<tbody>");
                    lEmailBody.Append("<tr>");
                    lEmailBody.Append("<th style=\"text-align:left;margin:20px;padding:20px;\">");
                    lEmailBody.Append("<p>尊敬的 <strong>").Append(UserName).Append("</strong>:</p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>请点击以下链接重置您的密码。(链接7天内有效)</p>");
                    lEmailBody.Append("<a href='").Append(Url).Append("'>").Append(Url).Append("</a>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>本邮件为系统邮件,请勿直接回复,谢谢!</p>");
                    lEmailBody.Append("<p>若有任何疑问,请联系 [email protected]</p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>Beef to China</p>");
                    lEmailBody.Append("</th>");
                    lEmailBody.Append("</tr>");
                    lEmailBody.Append("</tbody>");
                    lEmailBody.Append("</table>");
                    lEmailBody.Append("</center>");

                    SendEmail.SendSupportEmail(Email, "Beef to china 重置密码", lEmailBody.ToString());
                }
                else
                {
                    lEmailBody.Append("<center>");
                    lEmailBody.Append("<table width=\"780\" style=\"border:1px solid #d64635;\">");
                    lEmailBody.Append("<thead>");
                    lEmailBody.Append("<tr style=\"background-color:#d64635;color:#FFF;height:34px;\">");
                    lEmailBody.Append("<th>Beef to China</th>");
                    lEmailBody.Append("</tr>");
                    lEmailBody.Append("</thead>");
                    lEmailBody.Append("<tbody>");
                    lEmailBody.Append("<tr>");
                    lEmailBody.Append("<th style=\"text-align:left;margin:20px;padding:20px;\">");
                    lEmailBody.Append("<p>Dear <strong>").Append(UserName).Append("</strong>:</p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>Please follow the link to reset your password. (The link is valid for 7 days.)</p>");
                    lEmailBody.Append("<a href='").Append(Url).Append("'>").Append(Url).Append("</a>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>This email is automatically generated by the system, please do not reply. Thanks! </p>");
                    lEmailBody.Append("<p>If you have any questions, please contact [email protected].</p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p></p>");
                    lEmailBody.Append("<p>Beef to China</p>");
                    lEmailBody.Append("</th>");
                    lEmailBody.Append("</tr>");
                    lEmailBody.Append("</tbody>");
                    lEmailBody.Append("</table>");
                    lEmailBody.Append("</center>");

                    SendEmail.SendSupportEmail(Email, "Beef to china reset password", lEmailBody.ToString());
                }
                return Ok();
            }
            else
            {
                return BadRequest("_usernameoremailnotcorrect");
            }
        }
コード例 #11
0
ファイル: UserAccountController.cs プロジェクト: Jason235/BOC
        public IHttpActionResult ResetPassword(ResetPassowrdParams aResetPassowrdParams)
        {
            try
            {
                BOCPasswordHasher lBOCPasswordHasher = new BOCPasswordHasher();
                string lNewPassword = lBOCPasswordHasher.HashPassword(aResetPassowrdParams.Password);
                DESCode lDESCode = new DESCode();
                string lUserName = lDESCode.DecryptDES(aResetPassowrdParams.UserName);
                string[] lStringArray = lUserName.Split('|');
                string lUserTrueName = lStringArray[0];
                string lDateTime = lStringArray[1];
                DateTime lNow = DateTime.Now;
                DateTime lEmailDateTime = DateTime.Parse(lDateTime);
                if ((lNow - lEmailDateTime).Days > 7)
                {
                    return BadRequest("_resetpasswordexpired");
                }

                BOC.Entities.User lUser = _BOCWebDBContext.Users.Where(e => e.UserName == lUserTrueName).FirstOrDefault();
                if (lUser != null)
                {
                    lUser.Password = lNewPassword;
                    _BOCWebDBContext.Users.Attach(lUser);
                    _BOCWebDBContext.Entry<BOC.Entities.User>(lUser).State = System.Data.Entity.EntityState.Modified;
                    _BOCWebDBContext.SaveChanges();
                    return Ok();
                }
                else
                {
                    return BadRequest("_reseterror");
                }
            }
            catch (Exception e)
            {
                return BadRequest(e.ToString());
            }
        }