Example #1
0
        public static void OpenDbConnection(bool isEncrypted)
        {
            string password = string.Empty;

            if (isEncrypted)
            {
                string username;
                byte[] ciphertext;
                byte[] entropy;

                if (PasswordUtility.RetrievePasswordFromRegistry(out username, out ciphertext, out entropy))
                {
                    password = PasswordUtility.Decrypt(ciphertext, entropy);
                }
            }

            SqliteCon = new SQLiteConnection(DbConnectionString);

            if (isEncrypted)
            {
                SqliteCon.SetPassword(password);
            }

            SqliteCon.Open();
        }
Example #2
0
 /// <summary>
 /// ساخت و قراردادن متغیر های کاربر در قالب مورد استفاده
 /// </summary>
 /// <param name="template">قالب</param>
 /// <param name="user">کاربر</param>
 /// <returns>قالب که با متغیر های مورد نظر پر شده است</returns>
 public static void Manipulate(ref string template, User user)
 {
     template = template.Replace(BaseInformationKey.UserVariable_FullName, GetSexText(user.SexId));
     template = template.Replace(BaseInformationKey.UserVariable_FullName, user.FullName);
     template = template.Replace(BaseInformationKey.UserVariable_Mobile, user.MobileNumber);
     template = template.Replace(BaseInformationKey.UserVariable_Email, user.Email);
     template = template.Replace(BaseInformationKey.UserVariable_Password, PasswordUtility.Decrypt(user.Password));
 }
Example #3
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            if (Request.Headers["Authorization"] != null)
            {
                try
                {
                    var token  = Request.Headers["Authorization"];
                    var userId = Auth.CheckToken(token);
                    if (userId != null)
                    {
                        using (var db = new AsefianContext())
                        {
                            var tokenEntity = db.Token.Where(x => x.AuthoritarianToken == token && x.ExpiredDateTime >= DateTime.Now).Single();
                            HttpContext.Current.User    = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(AsefianMetadata.Site, "Forms"), Permission.GetPermissionList(tokenEntity.User.Permission));
                            tokenEntity.ExpiredDateTime = DateTime.Now.AddMinutes(180);
                        }
                    }
                    else
                    {
                        throw new AuthenticationException();
                    }
                }
                catch (Exception)
                {
                }
            }
            else if (FormsAuthentication.CookiesSupported == true)
            {
                if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
                {
                    try
                    {
                        //let us take out the username now
                        HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(FormsAuthentication.FormsCookieName);
                        cookie.Expires = DateTime.Now.AddMinutes(90);
                        HttpContext.Current.Request.Cookies.Set(cookie);
                        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
                        var user = JsonConvert.DeserializeObject <UserPrincipal>(ticket.Name);
                        //let us extract the roles from our own custom cookie
                        var permissionList = new List <string>();
                        permissionList.AddRange(Permission.GetPermissionList(int.Parse(PasswordUtility.Decrypt(user.token))));
                        using (var db = new AsefianContext())
                        {
                            var userGroup = db.Group.Where(x => x.UserGroupList.Any(y => y.UserId == user.id)).ToList();

                            foreach (var x in userGroup)
                            {
                                permissionList.AddRange(Permission.GetPermissionList(x.Permission));
                            }
                        }

                        permissionList = permissionList.Distinct().ToList();
                        //Let us set the Pricipal with our user specific details
                        HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(AsefianMetadata.Site, "Forms"), permissionList.ToArray());
                    }
                    catch (Exception)
                    {
                        //somehting went wrong
                    }
                }
            }
        }