Example #1
0
        public string GenerateToken(LoginViewModel vm)
        {
            string token = vm.username + "_" + DateTime.Now;

            token = SecurityUtility.EncryptAndEncode(token);

            return(token);
        }
Example #2
0
        public static string GetUsernameFromToken(string token)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw new Exception("token is null   - دسترسی ندارید");
            }

            token = SecurityUtility.DecodeAndDecrypt(token);

            if (string.IsNullOrEmpty(token))
            {
                throw new Exception("token after decription is null - دسترسی ندارید");
            }

            string datetime = token.Split('_')[0];

            return(datetime);
        }
Example #3
0
        public DateTime parseToken(string token)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw new Exception("token is null");
            }

            token = SecurityUtility.DecodeAndDecrypt(token);

            if (string.IsNullOrEmpty(token))
            {
                throw new Exception("token after decription is null");
            }

            string datetime = token.Split('_')[1];

            return(DateTime.Parse(datetime));
        }
Example #4
0
        public LoginViewModel Decript(LoginViewModel vm)
        {
            if (string.IsNullOrEmpty(vm.encoded))
            {
                throw new Exception("  خطای سیستمی : انکد خالی است ");
            }

            string json = SecurityUtility.DecodeAndDecrypt(vm.encoded);

            vm = JsonConvert.DeserializeObject <LoginViewModel>(json);

            if (string.IsNullOrEmpty(vm.username) || string.IsNullOrEmpty(vm.password))
            {
                throw new Exception("  خطای سیستمی : نام کاربری یا رمز عبور خالی است ");
            }


            return(vm);
        }
Example #5
0
        public override void Save(WorkplacePersonnel p)
        {
            using (var db = new EngineContext())
            {
                if (p.WorkplaceId == 0)
                {
                    throw new JServiceException("محل کار مشخص نشده است");
                }


                if (p.PersonnelId.HasValue)
                {
                    var personnel = db.Personnels.Find(p.PersonnelId);
                    if (personnel == null)
                    {
                        throw new JServiceException("پرسنل یافت نشد");
                    }



                    if (string.IsNullOrEmpty(p.Username))
                    {
                        if (string.IsNullOrEmpty(personnel.Code))
                        {
                            throw new JServiceException(
                                      "کد ملی برای این پرسنل یافت نشد لطفا نام کاربری را دستی وارد نمایید");
                        }
                        p.Username = personnel.Code;
                    }

                    if (string.IsNullOrEmpty(p.Password))
                    {
                        if (string.IsNullOrEmpty(personnel.Code))
                        {
                            throw new JServiceException(
                                      "کد ملی برای این پرسنل یافت نشد لطفا رمز عبور را دستی وارد نمایید");
                        }
                        p.Password = personnel.Code;
                    }
                }



                if (p.Id == 0)
                {
                    var any = db.WorkplacePersonnels.Any(wp =>
                                                         wp.Username == p.Username);

                    if (any)
                    {
                        throw new JServiceException("این نام کاربری قبلا موجود است لطفا یک نام دیگر وارد نمایید");
                    }

                    any = db.WorkplacePersonnels.Any(wp =>
                                                     wp.PersonnelId == p.PersonnelId);

                    if (any)
                    {
                        throw new JServiceException("برای این کاربر قبلا نام کاربری و رمز عبور تعریف شده است");
                    }


                    NormalPassword = p.Password;

                    p.Password = SecurityUtility.EncryptAndEncode(p.Password);
                    db.WorkplacePersonnels.Add(p);
                }
                else
                {
                    var wp = db.WorkplacePersonnels.Find(p.Id);
                    if (wp == null)
                    {
                        throw new JServiceException("رکورد برای ذخیره و اپدیت شدن یافت نشد");
                    }


                    // نام کاربری را تغییر داده باشد ، نباید تکراری باشد
                    if (wp.Username != p.Username)
                    {
                        var any = db.WorkplacePersonnels.Any(wp2 =>
                                                             wp2.Username == p.Username && wp2.Id != p.Id);

                        if (any)
                        {
                            throw new JServiceException("این نام کاربری قبلا موجود است لطفا یک نام دیگر وارد نمایید");
                        }
                    }



                    try
                    {
                        // اگر قبلا شده باشد ، خطا نمی دهد
                        NormalPassword = SecurityUtility.DecodeAndDecrypt(p.Password);
                    }
                    catch (Exception)
                    {
                        p.Password = SecurityUtility.EncryptAndEncode(p.Password);
                        // اگر خطا داد یعنی انکریپت نشده است
                    }


                    db.Entry(wp).CurrentValues.SetValues(p);

                    db.Entry(wp).State = EntityState.Modified;
                }

                db.SaveChanges();
            }
        }
Example #6
0
        public LoginViewModel EncriptForDbSave(LoginViewModel vm)
        {
            vm.password = SecurityUtility.EncryptAndEncode(vm.password);

            return(vm);
        }