示例#1
0
        public ActionResult <string> GrabToken(Credentials creds)
        {
            //Load the Auth Entry for the User
            Auth authorization = _authRepo.Read(c => c.Email.Equals(creds.Email, StringComparison.InvariantCultureIgnoreCase));

            if (authorization != null)
            {
                if (Verify(creds.Password, authorization.Password))
                {
                    //Load the Token Entry for the User
                    TokenAuth tokenEntry = _tokenAuthRepo.Read(t => t.AuthId == authorization.AuthId);

                    //If the user assigned to the Token Entry is a patient.... Log them in.m
                    if (_patientRepo.ReadAll().Any(p => p.UserId == tokenEntry.UserId))
                    {
                        return(tokenEntry.Token);
                    }
                    else
                    {
                        return(Content("Invalid Credentials"));
                    }
                }
                else
                {
                    return(Content("Invalid Credentials"));
                }
            }
            else
            {
                return(Content("Invalid Credentials"));
            }
        }
示例#2
0
        public async Task <string> DeleteAsync(string model, object id)
        {
            try
            {
                if (App.token == null)
                {
                    TokenAuth tokenAuth = new TokenAuth();
                    tokenAuth.userId = App.user != null ? App.user.UserId : "";
                    //tokenAuth.userId = "*****@*****.**";
                    tokenAuth.secretCode = App.user != null ? App.user.SecretCode : "";
                    App.token            = await PostAndReturnToken <Token>("tokens", tokenAuth);
                }
                HttpClient client = new HttpClient();
                if (App.token != null)
                {
                    if (!string.IsNullOrEmpty(App.token.token))
                    {
                        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + App.token.token);
                    }
                }
                client.BaseAddress = new Uri(CommonConstant.apiUrl);
                var response = await client.DeleteAsync(model + "/" + id.ToString());

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    return(ApiStatusConstant.SUCCESS);
                }
            }
            catch
            {
            }
            return(default(string));
        }
示例#3
0
        public async Task <TokenAuth> DoLogin(Login token)
        {
            var tokenAuth = new TokenAuth();

            var user = await _userManager.FindByEmailAsync(token.Email);

            if (user is null || !await _userManager.CheckPasswordAsync(user, token.Password))
            {
                tokenAuth.Message = "Email or Password is incorrect!";
                return(tokenAuth);
            }

            var jwtSecurityToken = await CreateJwt(user);

            var rolesList = await _userManager.GetRolesAsync(user);

            tokenAuth.IsAuthenticated = true;
            tokenAuth.Token           = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);
            tokenAuth.Email           = user.Email;
            tokenAuth.Username        = user.UserName;
            tokenAuth.ExpiresOn       = jwtSecurityToken.ValidTo;
            tokenAuth.Roles           = rolesList.ToList();

            return(tokenAuth);
        }
示例#4
0
        public Responser CreateTokenAuth(string userId = "")
        {
            try
            {
                bool isValid = false;

                if (!string.IsNullOrWhiteSpace(userId))
                {
                    //Generate a Token
                    AM_User userLogged  = new AM_User();
                    Guid    tokenLogged = Guid.NewGuid();
                    userLogged.Token  = tokenLogged.ToString();
                    userLogged.UserID = int.Parse(userId);

                    Employees_Tab empTab = PayRollDB.Employees_Tab.Where(item => item.EmployeeID == userLogged.UserID).ToList().FirstOrDefault();

                    if (empTab != null)
                    {
                        //Record Token in OAuth's Table
                        TokenAuth tokenRecords = new TokenAuth();
                        tokenRecords.Token         = tokenLogged;
                        tokenRecords.CreationDate  = DateTime.Now;
                        tokenRecords.TokenStatusID = PayRollDB.TokenStatus.Where(item => item.Name == "Active").ToList().FirstOrDefault().TokenStatusID;
                        PayRollDB.TokenAuth.Add(tokenRecords);
                        PayRollDB.SaveChanges();

                        //Set token to user
                        empTab.Token = tokenLogged;
                        PayRollDB.SaveChanges();

                        isValid         = true;
                        responser_.Data = tokenLogged.ToString();
                    }
                    else
                    {
                        isValid         = false;
                        responser_.Data = string.Empty;
                    }
                }
                else
                {
                    isValid         = false;
                    responser_.Data = string.Empty;
                }

                responser_.Status        = (isValid ? 1 : 0);
                responser_.StatusMessage = (isValid ? "Token Auth generated successfully" : "Error at generating Token Auth");
                return(responser_);
            }
            catch (Exception e)
            {
                responser_.Status        = -1;
                responser_.StatusMessage = e.Message.ToString();
                responser_.Data          = null;

                return(responser_);
            }
        }
示例#5
0
        private void toolStripButtonToken_Click(object sender, EventArgs e)
        {
            TokenAuth getToken = new TokenAuth();

            getToken.ShowDialog();
            if (getToken.DialogResult == DialogResult.OK)
            {
                MessageBox.Show(VKClass.VK.UserName() + ", авторизация успешна!");
            }
        }
示例#6
0
        public AuthHandler(IJwtGenerator jwt, ISqlHelper sql, IEventLogger logger)
        {
            if (jwt is null || sql is null || logger is null)
            {
                throw new Exception("AuthHandler:A constructor parameter is null");
            }

            UserAuth  = new UserAuth(sql, jwt);
            TokenAuth = new TokenAuth(sql, jwt);
            Logger    = logger;
        }
示例#7
0
        public ActionResult <User> GetAuthUser([FromBody] TokenAuth tokenAuth)
        {
            User user = _usersService.GetUserByToken(tokenAuth.Token);

            if (user.Password == null)
            {
                return(null);
            }

            return(user);
        }
示例#8
0
 public ITokenRespons TokenRefreshToken(string refreshToken)
 {
     try
     {
         var token = TokenAuth.RefreshToken(refreshToken, "token", Domain, GenerateClaim);
         return(token);
     }
     catch
     {
         return(null);
     }
 }
示例#9
0
 public ITokenRespons TokenAuthentication(IToken tokenKey)
 {
     try
     {
         var token = TokenAuth.Authentiacte(tokenKey, "token", Domain, GenerateClaim);
         return(token);
     }
     catch
     {
         return(null);
     }
 }
示例#10
0
        public async void LoginTapped(object sender, EventArgs args)
        {
            Loading.IsVisible = true;
            Loading.IsRunning = true;
            if (App.user == null || string.IsNullOrEmpty(App.user.UserId))
            {
                var result = await App.AuthenticationClient.AcquireTokenAsync(
                    Constants.Scopes,
                    string.Empty,
                    UiOptions.SelectAccount,
                    string.Empty,
                    null,
                    Constants.Authority,
                    Constants.SignUpSignInPolicy);

                if (result != null)
                {
                    Login.Source      = "Logout_128.png";
                    Profile.IsEnabled = true;
                    var        jwt        = new JwtSecurityToken(result.IdToken);
                    string     email      = jwt.Claims.First(c => c.Type == "emails").Value;
                    RestClient restClient = new RestClient();
                    string     json       = await restClient.GetAndReturnObject("users", email, null);

                    App.userId = email;
                    Models.User users = JsonConvert.DeserializeObject <Models.User>(json);
                    if (users == null)
                    {
                        users = new Models.User();
                    }
                    App.user = users;
                    TokenAuth tokenAuth = new TokenAuth();
                    tokenAuth.userId     = users != null ? users.UserId : null;
                    tokenAuth.secretCode = App.user.SecretCode;
                    App.tokenAuth        = tokenAuth;
                    App.token            = await RestClient.PostAndReturnToken <Token>("tokens", tokenAuth);
                    await DisplayAlert("Thông báo", "Đăng nhập thành công", "Ok");
                }
            }
            else
            {
                Profile.IsEnabled = false;
                App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
                App.user      = null;
                App.token     = null;
                App.tokenAuth = null;
                App.userId    = "";
                await DisplayAlert("Thông báo", "Đăng xuất thành công", "Ok");
            }
            Loading.IsVisible = false;
            Loading.IsRunning = false;
        }
        public async Task <ActionResult <AuthModel> > Login(AuthModel authModel)
        {
            var retorno = await _cipService.EmissorLoginAsync(authModel);

            if (retorno.Email == null)
            {
                return(BadRequest("Email ou senha invalidos"));
            }

            authModel.Email  = retorno.Email;
            authModel.Nome   = retorno.Nome;
            authModel.Senha  = null;
            authModel.Claims = new List <UserPermissionModel>();

            if (retorno.PermissaoCadastro)
            {
                authModel.Claims.Add(new UserPermissionModel()
                {
                    Funcionalidade = "DT", Permissao = "Cadastrar"
                });
                authModel.Claims.Add(new UserPermissionModel()
                {
                    Funcionalidade = "CIP", Permissao = "Cadastrar"
                });
            }

            if (retorno.PermissaoVisualizacao)
            {
                authModel.Claims.Add(new UserPermissionModel()
                {
                    Funcionalidade = "DT", Permissao = "Visualizar"
                });
                authModel.Claims.Add(new UserPermissionModel()
                {
                    Funcionalidade = "CIP", Permissao = "Visualizar"
                });
            }

            authModel.Token = TokenAuth.GenerateBearerToken(_configuration["JtwTokenSecret"], authModel);

            return(authModel);
        }
示例#12
0
        public static async Task <T> PostAndReturnToken <T>(string model, TokenAuth obj)
        {
            using (var client = new HttpClient())
            {
                var serializerSettings = new JsonSerializerSettings();
                serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                var jsonRequest = JsonConvert.SerializeObject(obj, serializerSettings);
                var content     = new StringContent(jsonRequest, Encoding.UTF8, "text/json");
                client.BaseAddress = new Uri(CommonConstant.apiUrl);
                var postTask = client.PostAsync(model, content);
                postTask.Wait();
                var result = postTask.Result;
                if (result.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var jsonString = await result.Content.ReadAsStringAsync();

                    return(JsonConvert.DeserializeObject <T>(jsonString));
                }
            }
            return(default(T));
        }
示例#13
0
        public async Task <string> PostAsync(string model, object obj)
        {
            try
            {
                if (App.token == null)
                {
                    TokenAuth tokenAuth = new TokenAuth();
                    tokenAuth.userId     = App.user != null ? App.user.UserId : "";
                    tokenAuth.secretCode = App.user != null ? App.user.SecretCode : "";
                    App.token            = await PostAndReturnToken <Token>("tokens", tokenAuth);
                }
                var serializerSettings = new JsonSerializerSettings();
                serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                var        jsonRequest = JsonConvert.SerializeObject(obj, serializerSettings);
                var        content     = new StringContent(jsonRequest, Encoding.UTF8, "text/json");
                HttpClient client      = new HttpClient();
                if (App.token != null)
                {
                    if (!string.IsNullOrEmpty(App.token.token))
                    {
                        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + App.token.token);
                    }
                }
                client.BaseAddress = new Uri(CommonConstant.apiUrl);
                var response = await client.PostAsync(model, content);

                if (response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.OK ||
                    response.StatusCode == HttpStatusCode.Accepted ||
                    response.StatusCode == HttpStatusCode.NoContent ||
                    response.StatusCode == HttpStatusCode.Moved)
                {
                    return(ApiStatusConstant.SUCCESS);
                }
                return(response.Content.ReadAsStringAsync().Result);
            }
            catch
            {
            }
            return(default(string));
        }
示例#14
0
        public async Task <T> Get <T>(string model) where T : class
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                if (App.token == null)
                {
                    TokenAuth tokenAuth = new TokenAuth();
                    tokenAuth.userId     = App.user != null ? App.user.UserId : "";
                    tokenAuth.secretCode = App.user != null ? App.user.SecretCode : "";
                    App.token            = await PostAndReturnToken <Token>("tokens", tokenAuth);
                }
                try
                {
                    HttpClient client = new HttpClient();
                    if (App.token != null)
                    {
                        if (!string.IsNullOrEmpty(App.token.token))
                        {
                            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + App.token.token);
                        }
                    }
                    client.BaseAddress = new Uri(CommonConstant.apiUrl);
                    var response = await client.GetAsync(model);

                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        var jsonString = await response.Content.ReadAsStringAsync();

                        return(JsonConvert.DeserializeObject <T>(jsonString));
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Source);
                }
            }
            return(default(T));
        }
示例#15
0
        public IActionResult Login(Credentials creds)
        {
            //Try to Authenticate
            try
            {
                //Find Authorization based up on Credentials
                Auth      authorization      = _authRepo.Read(a => a.Email == creds.Email);
                TokenAuth tokenAuthorization = _tokenAuthRepo.Read(ta => ta.AuthId == authorization.AuthId);

                //Read the Doctor
                Doctor doctor = _doctorRepo.Read(d => d.Email == creds.Email);

                //If the doctor exists and is authed.
                if (!(doctor is null) && Verify(creds.Password, authorization.Password))
                {
                    //Set a Session
                    HttpContext.Session.SetString("TokenAuth", tokenAuthorization.Token);

                    //Redirect to the Landing Page
                    return(RedirectToAction("Dashboard", "Home"));
                }

                //Otherwise.. Assign A Temp Var called BadLogin
                TempData["BadLogin"] = true;

                //return the Login Page.
                return(View("Index"));
            }
            catch (Exception)
            {
                //Otherwise.. Assign A Temp Var called BadLogin
                TempData["BadLogin"] = true;

                //return the Login Page.
                return(View("Index"));
            }
        }
示例#16
0
        private async void SetData()
        {
            var tokenRepository = App.Get <TokenRepository>();
            var Token           = tokenRepository.GetLastLogin();

            if (Token != null)
            {
                App.user = new Models.User();
                //App.userId = Token.UserId;
                Models.User users = await restClient.Get <Models.User>("users/" + Token.UserId + "/location");

                if (users == null)
                {
                    users = new Models.User();
                }
                App.user = users;
                TokenAuth tokenAuth = new TokenAuth();
                tokenAuth.userId     = users != null ? users.UserId : null;
                tokenAuth.secretCode = App.user.SecretCode;
                App.tokenAuth        = tokenAuth;
                App.token            = await RestClient.PostAndReturnToken <Token>("tokens", tokenAuth);
            }
            ChangeLanguage();
        }
示例#17
0
        private static async Task GetTweets(TokenAuth auth, TweetRequest tweetRequest)
        {
            try
            {
                using (var handler = new HttpClientHandler())
                {
                    handler.ServerCertificateCustomValidationCallback =
                        (message, cert, chain, errors) => { return(true); };
                    using (var httpClient = new HttpClient(handler))
                        using (var client = new HttpClient(handler))
                        {
                            string baseAddress = "https://api.twitter.com/1.1/tweets/search/30day/analysis.json";

                            client.DefaultRequestHeaders.Add("Authorization", $"Bearer  {auth.AccessToken}");

                            int index = 1;
                            do
                            {
                                Console.WriteLine($"Page: {index++}");
                                var json          = JsonConvert.SerializeObject(tweetRequest);
                                var stringContent = new StringContent(json);
                                var request       = client.PostAsync(baseAddress, stringContent).Result;
                                var content       = await request.Content.ReadAsStringAsync();

                                await FileHelper.WriteFile($"wcf-{index}.json", content);

                                var result = JsonConvert.DeserializeObject <TweetResult>
                                             (
                                    content,
                                    new IsoDateTimeConverter
                                {
                                    DateTimeFormat = "ddd MMM dd HH:mm:ss K yyyy",
                                    Culture        = new System.Globalization.CultureInfo("en-US")
                                }
                                             );
                                Console.WriteLine($"Found: {result.Results.Count}");
                                tweetRequest.Next = result.Next;
                                result.Results.ForEach(x =>
                                {
                                    // Normalize ID, for store.
                                    if (x.QuotedStatusId == 0)
                                    {
                                        x.QuotedStatusId = null;
                                    }
                                    if (x.RetweetedStatusId == 0)
                                    {
                                        x.RetweetedStatusId = null;
                                    }
                                    if (x.ExtendedTweet != null)
                                    {
                                        x.ExtendedTweet.TweetRawId = x.Id;
                                    }
                                });
                            } while (!string.IsNullOrEmpty(tweetRequest.Next));
                        }
                }
            }
            catch (Exception ex)
            {
                var message = ex.Message;
            }
        }
示例#18
0
        public JsonResult Register([FromBody] User user)
        {
            string JWT = TokenAuth.CreateToken(TokenOptions, user.Email);

            return(new JsonResult(Users.Register(user, JWT)));
        }
示例#19
0
        public Responser Login([FromBody] LoginEntity loginEntity_)
        {
            try
            {
                List <MEmployees> employees = PayRollDB.Employees_Tab.ToList().MapTo <Employees_Tab, MEmployees>();

                employees = employees.Where(item => item.Email == loginEntity_.UserName && item.Password == loginEntity_.Password && item.Active == true).ToList();

                if (employees.Count > 0)
                {
                    //Get logged user
                    MUser userLogged = new MUser();

                    MEmployees employee = employees.FirstOrDefault();
                    userLogged.UserID   = employee.EmployeeID;
                    userLogged.Name     = string.Format("{0} {1}", employee.Name, employee.LastNames);
                    userLogged.UserName = employee.Email;
                    userLogged.Password = employee.Password;
                    userLogged.RoleName = employee.RoleName;

                    responser_.Status        = 0;
                    responser_.StatusMessage = "Login Successfully";
                    responser_.Data          = userLogged;

                    //Generate a Token
                    Guid tokenLogged = Guid.NewGuid();
                    userLogged.Token = tokenLogged.ToString();

                    Employees_Tab empTab = PayRollDB.Employees_Tab.Where(item => item.EmployeeID == userLogged.UserID).ToList().FirstOrDefault();

                    if (empTab != null)
                    {
                        //Record Token in OAuth's Table
                        TokenAuth tokenRecords = new TokenAuth();
                        tokenRecords.Token         = tokenLogged;
                        tokenRecords.CreationDate  = DateTime.Now;
                        tokenRecords.TokenStatusID = PayRollDB.TokenStatus.Where(item => item.Name == "Active").ToList().FirstOrDefault().TokenStatusID;
                        PayRollDB.TokenAuth.Add(tokenRecords);
                        PayRollDB.SaveChanges();

                        //Set token to user
                        empTab.Token = tokenLogged;
                        PayRollDB.SaveChanges();
                    }
                }
                else
                {
                    responser_.Status        = -2;
                    responser_.StatusMessage = "Login failed: User or password is incorrect.";
                    responser_.Data          = null;
                }

                return(responser_);
            }
            catch (Exception e)
            {
                responser_.Status        = -1;
                responser_.StatusMessage = e.Message.ToString();
                responser_.Data          = null;

                return(responser_);
            }
        }
示例#20
0
        async void Login_Clicked(object sender, EventArgs e)
        {
            App.localizer.SetLocale(App.defaultCulture);
            Loading.IsVisible = true;
            Loading.IsRunning = true;
            if (App.user == null || string.IsNullOrEmpty(App.user.UserId))
            {
                if (App.IsConnectivity)
                {
                    var result = await App.AuthenticationClient.AcquireTokenAsync(
                        Constants.Scopes,
                        string.Empty,
                        UiOptions.SelectAccount,
                        string.Empty,
                        null,
                        Constants.Authority,
                        Constants.SignUpSignInPolicy);

                    if (result != null)
                    {
                        try
                        {
                            var        jwt        = new JwtSecurityToken(result.IdToken);
                            string     email      = jwt.Claims.First(c => c.Type == "emails").Value;
                            RestClient restClient = App.restClient;
                            string     json       = await restClient.GetAndReturnObject("users", email, null);

                            //App.userId = email;
                            Models.User users = await restClient.Get <Models.User>("users/" + email + "/location");

                            if (users == null)
                            {
                                users = new Models.User();
                            }
                            App.user = users;
                            TokenAuth tokenAuth = new TokenAuth();
                            tokenAuth.userId     = users != null ? users.UserId : null;
                            tokenAuth.secretCode = App.user.SecretCode;
                            App.tokenAuth        = tokenAuth;
                            App.token            = await RestClient.PostAndReturnToken <Token>("tokens", tokenAuth);

                            App.ListContact = await restClient.Get <List <Models.User> >("users");

                            #region Sao luu du lieu cuc bo
                            var repository = App.Get <UserRepository>();
                            //Luu nguoi dung cuc bo
                            TokenRepository tokenRepository = App.Get <TokenRepository>();
                            TokenLite       tokenLite       = new TokenLite();
                            tokenLite.UserId = VikingCommonHelper.VikingEncodeData.Encrypt(email, true, CommonConstant.DefaultSecureKey);
                            tokenRepository.Create(tokenLite);
                            var UserLites = repository.GetAll();
                            var ListTemp  = App.ListContact.Where(x => !UserLites.Select(y => y.UserId).Contains(x.UserId)).ToList();
                            if (ListTemp != null && ListTemp.Any())
                            {
                                UserLites = ListTemp.ConvertToListUserLite();
                                foreach (var item in UserLites)
                                {
                                    repository.Create(item);
                                }
                            }
                            #endregion
                            App.ChangeLanguage();
                        }
                        catch (Exception ex)
                        {
                        }
                        await DisplayAlert(App.localizeResProvider.GetText("Notification"), App.localizeResProvider.GetText("LoginSuccess"), "Ok");
                    }
                }
            }
            else
            {
                App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
                App.user      = null;
                App.token     = null;
                App.tokenAuth = null;
                //App.userId = "";
                App.ChangeLanguage();
                await DisplayAlert(App.localizeResProvider.GetText("Notification"), App.localizeResProvider.GetText("LogoutSuccess"), "Ok");
            }
            Loading.IsVisible = false;
            Loading.IsRunning = false;
        }