Exemple #1
0
        /// <summary>
        /// 刷新登陆,返回登陆成功与否
        /// </summary>
        /// <returns></returns>
        public static async Task <bool> RefreshLog()
        {
            var netWork = CommonServiceLocator.ServiceLocator.Current.GetInstance <Services.NetWork.INetWorkServices>();
            var json    = await netWork.GetAsync("Login", "RefreshLog");

            var data = new { code = 2, message = "" };

            data = JsonConvert.DeserializeAnonymousType(json, data);
            SaveCookie(CookieFile, netWork.Cookie);
            if (data.code == 200)
            {
                if (File.Exists(UserFile))
                {
                    try
                    {
                        Session.CurrentUser = JsonConvert.DeserializeObject <Global.Model.User>(File.ReadAllText(UserFile));
                        IsLoginIn           = true;
                        LoginStateChanged?.Invoke(null, true);

                        return(true);
                    }
                    catch
                    {
                        return(false);
                    }
                }
                return(false);
            }
            return(false);
        }
Exemple #2
0
        public static async Task <string> LoginByEmail(string email, string passWord, bool remember = true)
        {
            var netWork = CommonServiceLocator.ServiceLocator.Current.GetInstance <Services.NetWork.INetWorkServices>();

            using (var md5 = new MD5CryptoServiceProvider())
            {
                byte[] passWordBytes = Encoding.UTF8.GetBytes(passWord);
                byte[] targetData    = md5.ComputeHash(passWordBytes);
                var    sb            = new StringBuilder();
                for (int i = 0; i < targetData.Length; i++)
                {
                    sb.Append(targetData[i].ToString("x2"));
                }
                passWord = sb.ToString();
            }

            var temp = JsonConvert.DeserializeObject <KeyValuePair <string, Global.Model.User> >(await netWork.PostAsync("Login", "LoginByEmail", new { email, passWord, remember = true }));

            CurrentUser = temp.Value;
            if (temp.Value == null)
            {
                IsLoginIn = false;
                return(temp.Key);
            }
            var cookie = netWork.Cookie;

            SaveCookie(CookieFile, cookie);
            WriteToFile(UserFile, JsonConvert.SerializeObject(temp.Value));
            IsLoginIn = true;
            LoginStateChanged?.Invoke(null, true);
            return("OK");
        }
Exemple #3
0
 public async Task UpdateLoginState(bool isLogggedIn)
 {
     if (LoginStateChanged != null)
     {
         await LoginStateChanged.Invoke(isLogggedIn);
     }
 }
Exemple #4
0
        public static void LogOut()
        {
            var netWork = CommonServiceLocator.ServiceLocator.Current.GetInstance <Services.NetWork.INetWorkServices>();

            IsLoginIn = false;
            LoginStateChanged?.Invoke(null, false);
        }
Exemple #5
0
        public bool Login()
        {
            bool result = false;

            SyncContext.Send((_) => result = WSUtils.Login(), null);
            LoginStateChanged?.Invoke(result ? LoginState.LoggedIn : LoginState.LoggedOut);

            return(result);
        }
        public async Task GetLoginSession()
        {
            solidIdentity = null;
            try
            {
                var result = await JSRuntime.InvokeAsync <object>("solid.auth.currentSession", null);

                Console.WriteLine($"Result: {result ?? ""}");

                if (result != null)
                {
                    JObject jObject = JObject.Parse(result.ToString());

                    solidIdentity = new SolidIdentity((string)jObject["issuer"]);
                    solidIdentity.SetId((string)jObject["webId"]);

                    string name = null;
                    try
                    {
                        var nameResult = await JSRuntime.InvokeAsync <object>("blazorSolid.getUserName", solidIdentity.Id);

                        if (nameResult != null)
                        {
                            JObject nameObject = JObject.Parse(nameResult.ToString());

                            name = (string)nameObject["value"];
                        }
                    }
                    catch (Exception x2)
                    {
                        Console.WriteLine("NAME ERROR:" + x2.GetBaseException().Message);
                    }

                    if (!string.IsNullOrWhiteSpace(name))
                    {
                        solidIdentity.SetName(name);
                    }
                    else
                    {
                        Uri uri = new Uri(solidIdentity.Id);
                        solidIdentity.SetName(uri.DnsSafeHost.Split('.')[0]);
                    }
                }
            }
            catch { }
            if (solidIdentity == null)
            {
                LoginStateChanged?.Invoke(false);
            }
            else
            {
                LoginStateChanged?.Invoke(true);
            }
        }
Exemple #7
0
        protected void SetLogined(Guid mangaType, bool value)
        {
            if (value)
            {
                logined.Add(mangaType);
            }
            else
            {
                logined.Remove(mangaType);
            }

            LoginStateChanged?.Invoke(this, value);
        }
Exemple #8
0
 /// <summary>
 /// 将加载器作为依赖服务注入。
 /// </summary>
 /// <param name="wrapper">加载器</param>
 public void InjectService(ISchoolWrapper wrapper)
 {
     Loader = wrapper;
     Loader.NoticeChange = (s, e) => LoginStateChanged?.Invoke(s, e);
 }
Exemple #9
0
 public void Logout()
 {
     SyncContext.Send((_) => PInvoke.AcConnectWebServicesLogout(), null);
     LoginStateChanged?.Invoke(LoginState.LoggedOut);
 }
Exemple #10
0
 protected virtual void OnLoginStateChanged(bool e)
 {
     LoginStateChanged?.Invoke(this, e);
 }
 Task UserLoggedOut()
 {
     solidIdentity = null;
     LoginStateChanged?.Invoke(false);
     return(Task.CompletedTask);
 }