コード例 #1
0
        public IProviderRegistration AddBase64()
        {
            var base64Provider = new Base64Provider();

            _cryptProviders.Add(base64Provider);
            return(this);
        }
コード例 #2
0
        public void RememberUser(string userName, string phone, string accessToken)
        {
            string        userFolder    = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER);
            string        userDataFile  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER, $"user.dat");
            UserDataModel userDataModel = new UserDataModel
            {
                UserName    = userName,
                Phone       = phone,
                AccessToken = accessToken,
                Data        = GlobalUser.USER
            };

            string userEncoded = Base64Provider.AESEncrypt(userDataModel.ToJsonItem(), Base64Provider.KEY, Base64Provider.IV);

            try
            {
                if (!Directory.Exists(userFolder))
                {
                    Directory.CreateDirectory(userFolder);
                }
                if (!File.Exists(userDataFile))
                {
                    var file = File.Create(userDataFile);
                    file.Close();
                }
                using (StreamWriter sw = new StreamWriter(userDataFile, false))
                {
                    sw.Write(userEncoded);
                }
            }
            catch (Exception e)
            {
                Log4NetHelper.Error(" MainViewModelBase.OpenUserInfoDialog写入用户信息异常:", e);
            }
        }
コード例 #3
0
        /// <summary>
        ///     检查记住的用户。
        /// </summary>
        private void CheckRememberUser(bool autoLogin = true)
        {
            try
            {
                var userDataFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER,
                                                "user.dat");

                if (File.Exists(userDataFile))
                {
                    using (var streamReader = new StreamReader(userDataFile))
                    {
                        var userEncoded = streamReader.ReadToEnd();
                        if (!string.IsNullOrEmpty(userEncoded))
                        {
                            var userData =
                                Base64Provider.AESDecrypt(userEncoded, Base64Provider.KEY, Base64Provider.IV);
                            var userDataModel = userData.FromJsonTo <UserDataModel>();
                            if (!string.IsNullOrEmpty(userDataModel?.Phone))
                            {
                                GlobalUser.USER          = userDataModel?.Data;
                                GlobalUser.USER.Mobile   = PhoneNum = userDataModel?.Phone;
                                GlobalUser.USER.Password = Pwd = userDataModel?.Password;
                                GlobalUser.USER.UserZy   = userDataModel?.UserZy == null
                                    ? new List <TaskInfo>()
                                    : userDataModel?.UserZy;
                                GlobalUser.USER.UnFirstOpen = userDataModel.UnFirstOpen;

                                if (!string.IsNullOrEmpty(userDataModel?.AccessToken))
                                {
                                    GlobalUser.CLASSINFO = userDataModel?.ClassData;
                                    GlobalUser.STUDYCARD = userDataModel?.StudyCard;
                                    GlobalUser.GRADEINFO = userDataModel?.GradeData;

                                    GlobalUser.USER.Expire_status = GlobalUser.STUDYCARD.expire_status;


                                    var windows = Application.Current.Windows;
                                    //GlobalUser.LoginWin = new Window();
                                    //foreach (Window window in windows)
                                    //    if (window.Name == "ml")
                                    //        GlobalUser.LoginWin = window;
                                    GlobalUser.AutoLoggedIn = true;
                                    checkOK = true;
                                    if (autoLogin)
                                    {
                                        LoggedIn(GlobalUser.LoginWin);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Log4NetHelper.Error("读取用户信息异常:", e);
            }
        }
コード例 #4
0
        public void CanGenerateBase64()
        {
            var sut      = new Base64Provider();
            var expected = "\"TW9jayBzZXJ2ZXIgZ2VuZXJhdGVkIGZpbGU=\"";

            var actual = sut.GetMockData(Schema.Base64());

            JsonAssert.Equal(expected, actual);
        }
コード例 #5
0
        private void LogoutEventHandler(object sender, DialogClosingEventArgs eventArgs)
        {
            if ((bool)eventArgs.Parameter == false)
            {
                return;
            }

            Application.Current.Dispatcher.Invoke(new Action(() =>
            {
                //var logoutResult = WebProxy(ApiType.UserLogout, GlobalUser.USER.AccessToken);//暂时 不用调用接口  移除token记录

                string userFolder   = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER);
                string userDataFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER, $"user.dat");

                UserDataModel userDataModel = new UserDataModel
                {
                    UserName    = GlobalUser.USER.UserName,
                    Phone       = GlobalUser.USER.Moblie,
                    AccessToken = "",
                    Data        = new UserInfo()
                };
                GlobalUser.USER    = null;
                string userEncoded = Base64Provider.AESEncrypt(userDataModel.ToJsonItem(), Base64Provider.KEY, Base64Provider.IV);
                try
                {
                    if (!Directory.Exists(userFolder))
                    {
                        Directory.CreateDirectory(userFolder);
                    }
                    if (!File.Exists(userDataFile))
                    {
                        var file = File.Create(userDataFile);
                        file.Close();
                    }
                    using (StreamWriter sw = new StreamWriter(userDataFile, false))
                    {
                        sw.Write(userEncoded);
                    }
                }
                catch (Exception e)
                {
                    Log4NetHelper.Error("写入用户信息异常:", e);
                }

                var winLogin = new MainLogin();
                winLogin.Show();
                winLogin.Focus();

                GlobalUser.MainWin?.Hide();
                //GlobalUser.MainWin?.Close();
                GlobalUser.MainWin = null;

                //_metroWindow.Hide();
                //_metroWindow.Close();
                //_metroWindow = null;
            }));
        }
コード例 #6
0
            public void ShouldGetNull(string jsonDocument, bool isApplicable)
            {
                // Given
                var jsonElement = JsonDocument.Parse(jsonDocument).RootElement;

                // When
                var authenticationProvider = new Base64Provider(jsonElement, TestcontainersSettings.Logger);
                var authConfig             = authenticationProvider.GetAuthConfig(DockerRegistry);

                // Then
                Assert.Equal(isApplicable, authenticationProvider.IsApplicable(DockerRegistry));
                Assert.Null(authConfig);
            }
コード例 #7
0
            public void ShouldGetAuthConfig()
            {
                // Given
                const string jsonDocument = "{\"auths\":{\"" + DockerRegistry + "\":{\"auth\":\"dXNlcm5hbWU6cGFzc3dvcmQ=\"}}}";
                var          jsonElement  = JsonDocument.Parse(jsonDocument).RootElement;

                // When
                var authenticationProvider = new Base64Provider(jsonElement, TestcontainersSettings.Logger);
                var authConfig             = authenticationProvider.GetAuthConfig(DockerRegistry);

                // Then
                Assert.True(authenticationProvider.IsApplicable(DockerRegistry));
                Assert.NotNull(authConfig);
                Assert.Equal(DockerRegistry, authConfig.RegistryEndpoint);
                Assert.Equal("username", authConfig.Username);
                Assert.Equal("password", authConfig.Password);
            }
コード例 #8
0
ファイル: LoginController.cs プロジェクト: radtek/yiqixicai
        //
        // GET: /Login/
        //[OutputCache(Duration = 100)]
        public ActionResult Index()
        {
            var    defaultLanguage = System.Configuration.ConfigurationManager.AppSettings["defaultLanguage"];
            string backUrl         = "";

            if (this.SessionExt()["backUrl"] != null)
            {
                backUrl = this.SessionExt()["backUrl"].ToString();
            }
            if (!string.IsNullOrEmpty(Request.QueryString["backUrl"]))
            {
                backUrl = Request.QueryString["backUrl"];
            }
            if (backUrl == "/")
            {
                backUrl = "/" + defaultLanguage;
            }
            this.SessionExt()["backUrl"] = string.IsNullOrEmpty(backUrl)
                ? Url.RetechAction("Index", "Home", new { culture = CultureInfo.CurrentCulture.ToString() })
                : backUrl;

            #region remember password

            //TempData["userName"] = "";
            this.SessionExt()["password"] = "";
            this.SessionExt()["remember"] = 0;
            HttpCookie httpCookie = Request.Cookies["RetechWing_User"];
            if (httpCookie != null)
            {
                this.SessionExt()["remember"] = 1;
                this.SessionExt()["userName"] = httpCookie["username"];
                this.SessionExt()["password"] = Base64Provider.DecodeBase64String(httpCookie["password"]);
            }

            #endregion
            var ps          = _permissionManager.GetAllPermissions();
            var psUpdateSql = new StringBuilder();
            foreach (var permission in ps)
            {
                psUpdateSql.AppendFormat(@"UPDATE Sys_Permission SET AreaName='{0}' 
WHERE PermissionName='{1}'", permission.AreaName, permission.PermissionName);
                psUpdateSql.AppendLine();
            }
            ViewBag.sql = psUpdateSql.ToString();
            return(View());
        }
コード例 #9
0
        /// <summary>
        /// 检查记住的用户。
        /// </summary>
        private void CheckRememberUser()
        {
            try
            {
                string userDataFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER, $"user.dat");

                if (File.Exists(userDataFile))
                {
                    using (StreamReader streamReader = new StreamReader(userDataFile))
                    {
                        string userEncoded = streamReader.ReadToEnd();
                        if (!String.IsNullOrEmpty(userEncoded))
                        {
                            string        userData      = Base64Provider.AESDecrypt(userEncoded, Base64Provider.KEY, Base64Provider.IV);
                            UserDataModel userDataModel = userData.FromJsonTo <UserDataModel>();
                            if (!String.IsNullOrEmpty(userDataModel?.Phone))
                            {
                                PhoneNum = userDataModel?.Phone;
                                if (!String.IsNullOrEmpty(userDataModel?.AccessToken))
                                {
                                    GlobalUser.USER = userDataModel?.Data;

                                    var windows  = Application.Current.Windows;
                                    var loginWin = new Window();
                                    foreach (Window window in windows)
                                    {
                                        if (window.Name == "ml")
                                        {
                                            loginWin = window as Window;
                                        }
                                    }
                                    GlobalUser.AutoLoggedIn = true;
                                    checkOK = true;
                                    LoggedIn(loginWin);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Log4NetHelper.Error("读取用户信息异常:", e);
            }
        }
コード例 #10
0
        public void RememberUser()
        {
            string        userFolder    = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER);
            string        userDataFile  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER, $"user.dat");
            UserDataModel userDataModel = new UserDataModel
            {
                UserName    = GlobalUser.USER.UserName,
                Phone       = GlobalUser.USER.Mobile,
                Avatar      = GlobalUser.USER.Avatar,
                AccessToken = GlobalUser.USER.Token,
                Password    = GlobalUser.USER.Password,
                Data        = GlobalUser.USER,
                ClassData   = GlobalUser.CLASSINFO,
                UserZy      = GlobalUser.USER.UserZy,
                StudyCard   = GlobalUser.STUDYCARD,
                GradeData   = GlobalUser.GRADEINFO,
                UnFirstOpen = GlobalUser.USER.UnFirstOpen
            };

            string userEncoded = Base64Provider.AESEncrypt(userDataModel.ToJsonItem(), Base64Provider.KEY, Base64Provider.IV);

            try
            {
                if (!Directory.Exists(userFolder))
                {
                    Directory.CreateDirectory(userFolder);
                }
                if (!File.Exists(userDataFile))
                {
                    var file = File.Create(userDataFile);
                    file.Close();
                    file.Dispose();
                }
                using (StreamWriter sw = new StreamWriter(userDataFile, false))
                {
                    sw.Write(userEncoded);
                }
            }
            catch (Exception e)
            {
                Log4NetHelper.Error("写入用户信息异常:", e);
            }
        }
コード例 #11
0
        /// <summary>
        /// 读取 错误评分你记录
        /// </summary>
        /// <param name="user"></param>
        /// <param name="paperid"></param>
        /// <param name="attendid"></param>
        public static void GetErrorScoreSource(string user, string paperid, string attendid)
        {
            var    filePath  = Path.Combine(GlobalUser.AUDIODATAFOLDER, $"{user}_{paperid.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries)[0]}_{attendid}");
            string errjson_e = "";

            if (!File.Exists(filePath))
            {
                return;
            }

            using (StreamReader sr = new StreamReader(filePath))
            {
                while (!sr.EndOfStream)
                {
                    errjson_e = sr.ReadToEnd();
                }
            }

            var errjson = Base64Provider.AESDecrypt(errjson_e);

            Dictionary <string, dynamic> dic = JsonHelper.FromJson <Dictionary <string, dynamic> >(errjson);

            if (dic.Count > 0)
            {
                ErrScoreInfo = new Dictionary <string, ExamScoreNavigateMessage>();

                foreach (var key in dic.Keys)
                {
                    var val = dic[key];

                    ExamScoreNavigateMessage enm = new ExamScoreNavigateMessage(JsonHelper.FromJson <SubmitRecordModel>(val.AnswerModel.ToString()),
                                                                                val.WaveFileName.ToString(),
                                                                                Enum.Parse(typeof(Framework.Engine.EngineQsType), val.QsType.ToString()),
                                                                                val.EType.ToString(),
                                                                                val.QType.ToString()
                                                                                );
                    enm.SubmitNum = Int32.Parse(val.SubmitNum.ToString());

                    ErrScoreInfo.Add(key, enm);
                }
            }
        }
コード例 #12
0
ファイル: LoginController.cs プロジェクト: radtek/yiqixicai
 /// <summary>
 /// 记住密码
 /// </summary>
 /// <param name="username"></param>
 /// <param name="password"></param>
 /// <param name="rememberPwdFlag">1:记住;0:不记</param>
 private void RememberPwd(string username, string password, int rememberPwdFlag = 0)
 {
     if (rememberPwdFlag == 1)
     {
         var newCookie = new HttpCookie("RetechWing_User");
         newCookie.Values["username"] = HttpUtility.UrlEncode(username);
         newCookie.Values["password"] = Base64Provider.EncodeBase64String(password); //加密后的密码放到COOKIE内
         newCookie.Expires            = DateTime.Now.AddDays(15);
         Response.AppendCookie(newCookie);
     }
     else
     {
         HttpCookie cookie = Request.Cookies["RetechWing_User"];
         if (cookie != null)
         {
             cookie.Expires = DateTime.Now.AddDays(-2);
             Response.Cookies.Set(cookie);
         }
     }
 }
コード例 #13
0
        /// <summary>
        /// 更新 异常评分数据
        /// </summary>
        public static void UpdateErrScore(string user, string paperid, string attendid)
        {
            var filePath = Path.Combine(GlobalUser.AUDIODATAFOLDER, $"{user}_{paperid.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries)[0]}_{attendid}");

            if (GlobalUser.ErrScoreInfo == null || GlobalUser.ErrScoreInfo.Count == 0)
            {
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
                return;
            }

            for (int i = 0; i < GlobalUser.ErrScoreInfo?.Count; i++)
            {
                if (GlobalUser.ErrScoreInfo[GlobalUser.ErrScoreInfo.Keys.ToList()[i]].AnswerModel?.exam_attend_id == attendid)
                {
                    continue;
                }

                {
                    GlobalUser.ErrScoreInfo.Remove(GlobalUser.ErrScoreInfo.Keys.ToList()[i]);
                    i--;
                }
            }

            //读写文件
            //File
            var errjson   = GlobalUser.ErrScoreInfo.ToJson();
            var errjson_e = Base64Provider.AESEncrypt(errjson);

            //byte[] data = System.Text.Encoding.Default.GetBytes(errjson_e);
            using (StreamWriter sw = new StreamWriter(filePath, false))
            {
                sw.Write(errjson_e);
            }
        }
コード例 #14
0
        private void ButtonBase1_OnClick(object sender, RoutedEventArgs e)
        {
            string paperJson;

            using (var jsonContent = new FileStream(@"E:\C#\EnglishExam\LTS\trunk\LTS-PC\bin\LTS-App\Debug\Data/USER_39\simulation_12_2018031611070156160369\simulation_12_2018031611070156160369.json", FileMode.Open))
            {
                int    fsLen  = (int)jsonContent.Length;
                byte[] heByte = new byte[fsLen];
                int    r      = jsonContent.Read(heByte, 0, heByte.Length);
                //string myStr = Encoding.UTF8.GetString(heByte);

                paperJson = Base64Provider.Decrypt(Encoding.UTF8.GetString(heByte), Base64Provider.KEY, Base64Provider.IV);
            }

            // '定义一个中文标点的数组对象
            string[] ChineseInterpunction =
            { "。", ",", ";", ":", "?", "!", "“", "”", "……", "—", "~", "(", ")", "《", "》" };
            //'定义一个英文标点的数组对象
            string[] EnglishInterpunction =
            { ".", ",", ";", ":", "?", "!", "\"", "\"", "…", "-", "~", "(", ")", "<", ">" };


            //var vvv = Microsoft.VisualBasic.Strings.StrConv("你好!朋友。", Microsoft.VisualBasic.VbStrConv.Narrow, 0);
            string strSBC = "中华1259test ’。!";
            string result = ToDBC(strSBC);

            Console.WriteLine(result);
            //Assert.AreEqual(result, "中华1259test'.!");


            for (int i = 0; i < ChineseInterpunction.Length; i++)
            {
                strSBC = strSBC.Replace(ChineseInterpunction[i], EnglishInterpunction[i]);
            }

            Console.WriteLine(strSBC);
        }
コード例 #15
0
        /// <summary>
        /// 注销
        /// </summary>
        protected void Loginout()
        {
            Application.Current.Dispatcher.Invoke(new Action(() =>
            {
                //var logoutResult = WebProxy(ApiType.UserLogout, GlobalUser.USER.AccessToken);//暂时 不用调用接口  移除token记录

                string userFolder   = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER);
                string userDataFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER,
                                                   $"user.dat");
                GlobalUser.USER.Token       = "";
                UserDataModel userDataModel = new UserDataModel
                {
                    AccessToken = "",
                    UserName    = GlobalUser.USER.UserName,
                    Phone       = GlobalUser.USER.Mobile,
                    Avatar      = GlobalUser.USER.Avatar,
                    Password    = GlobalUser.USER.Password,
                    Data        = GlobalUser.USER,
                    ClassData   = GlobalUser.CLASSINFO,
                    UserZy      = GlobalUser.USER.UserZy,
                    StudyCard   = GlobalUser.STUDYCARD,
                    UnFirstOpen = GlobalUser.USER.UnFirstOpen,
                };
                GlobalUser.USER    = null;
                string userEncoded =
                    Base64Provider.AESEncrypt(userDataModel.ToJsonItem(), Base64Provider.KEY, Base64Provider.IV);
                try
                {
                    if (!Directory.Exists(userFolder))
                    {
                        Directory.CreateDirectory(userFolder);
                    }

                    if (!File.Exists(userDataFile))
                    {
                        var file = File.Create(userDataFile);
                        file.Close();
                        file.Dispose();
                    }

                    using (StreamWriter sw = new StreamWriter(userDataFile, false))
                    {
                        sw.Write(userEncoded);
                    }
                }
                catch (Exception e)
                {
                    Log4NetHelper.Error("写入用户信息异常:", e);
                }

                DialogHost.CloseAllShow();

                {
                    Log_Data log   = new Log_Data();
                    log.log_desc   = Log_Type.PC_Logout.ToString();
                    log.log_text   = $"注销:{GlobalUser.USER?.Mobile}";
                    log.log_device = JsonHelper.ToJson(GlobalUser.MACHINEINFO.GetDevice());
                    WebApiProxy.GetHtmlRespInfo(log, ApiType.SysLog, null, "Post");
                }

                GlobalUser.MainWin?.Hide();
                GlobalUser.MainWin = null;
                //GlobalUser.MainWin?.Close();

                ClearMemory();

                GlobalUser.AutoLoggedIn        = false;
                GlobalUser.MainWin             = new MainLogin();
                GlobalUser.MainWin.DataContext = new MainLoginVM(false);
                GlobalUser.MainWin.Show();
                GlobalUser.MainWin.Focus();

                //_metroWindow.Hide();
                //_metroWindow.Close();
                //_metroWindow = null;
            }));
        }