Example #1
0
        public async static Task <bool> CheckUser(string username, string password)
        {
            try
            {
                LoginDetailsRef   loginRef = new LoginDetailsRef();
                LogInDetailsClass logincls = new LogInDetailsClass();
                loginRef = await logincls.GetLogInDetailsPage(username, password);

                if (loginRef.LogInData != null && loginRef.LogInData.UserName != string.Empty || loginRef.LogInData.Password != string.Empty || string.IsNullOrWhiteSpace(Convert.ToString(loginRef.LogInData.Password)))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception xp)
            {
                return(false);
            }
            finally
            {
            }
        }
Example #2
0
        //  private const string Secret = "db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw==";
        //public static string GenerateToken(string username, int expireMinutes = 20)
        //{
        //    var symmetricKey = Convert.FromBase64String(Secret);
        //    var tokenHandler = new JwtSecurityTokenHandler();

        //    var now = DateTime.UtcNow;
        //    var tokenDescriptor = new SecurityTokenDescriptor
        //    {
        //        Subject = new ClaimsIdentity(new[]
        //                {
        //                new Claim(ClaimTypes.Name, username)
        //            }),

        //        Expires = now.AddMinutes(Convert.ToInt32(expireMinutes)),

        //        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(symmetricKey), SecurityAlgorithms.HmacSha256Signature)
        //    };

        //    var stoken = tokenHandler.CreateToken(tokenDescriptor);
        //    var token = tokenHandler.WriteToken(stoken);

        //    return token;
        //}

        //public bool CheckUser(string username, int password)
        //{
        //    try
        //    {
        //        LoginDetailsRef loginRef = new LoginDetailsRef();
        //        LogInDetailsClass logincls = new LogInDetailsClass();
        //        loginRef = logincls.GetLogInDetailsPage(username, password);
        //        if (loginRef.LogInData.UserName.Trim() != string.Empty || loginRef.LogInData.Password.Value != 0 || string.IsNullOrWhiteSpace(Convert.ToString(loginRef.LogInData.Password).Trim()))
        //        {
        //            return true;
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //    }
        //    catch (Exception xp)
        //    {

        //    }
        //    finally
        //    {

        //    }
        //    return false;
        //}



        #endregion



        // POST: api/LogInDetails
        //public void Post([FromBody]string value)
        //{

        //}

        #region Token Validation Method

        //private static bool ValidateToken(string token, out string username)
        //{
        //    username = null;
        //    var simplePrinciple = GetPrincipal(token);
        //    var identity = simplePrinciple.Identity as ClaimsIdentity;

        //    if (identity == null)
        //        return false;

        //    if (!identity.IsAuthenticated)
        //        return false;

        //    var usernameClaim = identity.FindFirst(ClaimTypes.Name);
        //    username = usernameClaim?.Value;

        //    if (string.IsNullOrEmpty(username))
        //        return false;

        //    // More validate to check whether username exists in system

        //    return true;
        //}

        //protected Task<IPrincipal> AuthenticateJwtToken(string token)
        //{
        //    string username;
        //    if (ValidateToken(token, out username))
        //    {
        //        // based on username to get more information from database in order to build local identity
        //        var claims = new List<Claim>
        //    {
        //        new Claim(ClaimTypes.Name, username)
        //        // Add more claims if needed: Roles, ...
        //    };
        //        var identity = new ClaimsIdentity(claims, "Jwt");
        //        IPrincipal user = new ClaimsPrincipal(identity);
        //        return Task.FromResult(user);
        //    }
        //    return Task.FromResult<IPrincipal>(null);
        //}

        //public static ClaimsPrincipal GetPrincipal(string token)
        //{
        //    try
        //    {
        //        var tokenHandler = new JwtSecurityTokenHandler();
        //        var jwtToken = tokenHandler.ReadToken(token) as JwtSecurityToken;

        //        if (jwtToken == null)
        //            return null;

        //        var symmetricKey = Convert.FromBase64String(Secret);

        //        var validationParameters = new TokenValidationParameters()
        //        {
        //            RequireExpirationTime = true,
        //            ValidateIssuer = false,
        //            ValidateAudience = false,
        //            IssuerSigningKey = new SymmetricSecurityKey(symmetricKey)
        //        };

        //        SecurityToken securityToken;
        //        var principal = tokenHandler.ValidateToken(token, validationParameters, out securityToken);

        //        return principal;
        //    }
        //    catch (Exception xp)
        //    {
        //        //should write log
        //        return null;
        //    }
        //}

        #endregion

        // PUT: api/LogInDetails/5
        public HttpResponseMessage Put(int id, [FromBody] string value)
        {
            LoginDetailsRef loginref = new LoginDetailsRef();

            try
            {
                var    authorization = Request.Headers.Authorization;
                string UserName      = string.Empty;
                if (authorization == null || authorization.Scheme != "Bearer")
                {
                    return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                }

                if (string.IsNullOrEmpty(authorization.Parameter))
                {
                    // context.ErrorResult = new AuthenticationFailureResult("Missing Jwt Token", request);
                    return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                }

                var token = authorization.Parameter;

                bool strbool = CommonUseFunctionClass.ValidateToken(token, out UserName);

                if (strbool == true)
                {
                    loginref.Status = "Success";
                    return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.OK, loginref));
                }
                else
                {
                    loginref.Status = "Failure";
                    return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                }
            }
            catch (Exception xp)
            {
                loginref.Status = "Failure";
                return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
            }
            finally
            {
            }
            return(null);
        }
Example #3
0
        // GET: api/LogInDetails/5
        public async Task <HttpResponseMessage> Post([FromBody] LogInDetails value)
        {
            try
            {
                string          UserName   = value.UserName;
                string          Password   = value.Password;
                LoginDetailsRef loginref   = new LoginDetailsRef();
                LogInDetails    loginmodel = new LogInDetails();
                List <string>   Errors     = new List <string>();
                loginref.ErrorMessage = new List <string>();
                var regexSpace = new Regex(@"\s");
                if (UserName == null || UserName == string.Empty || string.IsNullOrWhiteSpace(UserName.Trim()) || Password == null || Password == string.Empty || string.IsNullOrWhiteSpace(Password.Trim()))
                {
                    if (UserName == null || UserName == string.Empty || string.IsNullOrWhiteSpace(UserName.Trim()))
                    {
                        Errors.Add("UserName is required");
                    }
                    if (Password == null || Password == string.Empty || string.IsNullOrWhiteSpace(Password.Trim()))
                    {
                        Errors.Add("Password is required");
                    }
                }
                else
                {
                    string specialCharacters      = @"%!#$%^&*(-)?/><,:;'\|}]{[~`+=" + "\"";
                    char[] specialCharactersArray = specialCharacters.ToCharArray();
                    int    index = UserName.IndexOfAny(specialCharactersArray);
                    //index == -1 no special characters
                    if (index == -1)
                    {
                    }
                    else
                    {
                        Errors.Add("UserName allows only three special characters '_' '.' '@' ");
                    }
                    if (regexSpace.IsMatch(UserName.Trim()))
                    {
                        Errors.Add("UserName should not have space");
                    }
                    string justNumber  = new String(UserName.Trim().Where(Char.IsDigit).ToArray());
                    string justStrings = new String(UserName.Trim().Where(Char.IsLetter).ToArray());

                    if (justStrings == null || justStrings == string.Empty && UserName.Length <= 20)
                    {
                        Errors.Add("UserName does not allow only numeric values");
                    }
                }
                if (regexSpace.IsMatch(Convert.ToString(Password).Trim()))
                {
                    Errors.Add("Password should not have space");
                }

                if (Errors != null && Errors.Count() > 0)
                {
                    loginref.Status       = "Failure";
                    loginref.ErrorMessage = Errors;
                    return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                }
                else
                {
                    if (await CommonUseFunctionClass.CheckUser(UserName, Password))
                    {
                        string str = CommonUseFunctionClass.GenerateToken(UserName, 20);
                        if (str != string.Empty || str != null || string.IsNullOrWhiteSpace(str.Trim()))
                        {
                            loginref.Status       = "Success";
                            loginref.Access_Token = str;
                            loginmodel.UserName   = UserName;
                            loginref.LogInData    = loginmodel;
                            return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.OK, loginref));
                        }
                        else
                        {
                            loginref.Status = "Failure";
                            loginref.ErrorMessage.Add("Token Is Not generated");
                            return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                        }
                    }
                    else
                    {
                        loginref.Status = "Failure";
                        loginref.ErrorMessage.Add("UserName or Password are not valid.");
                        return(Request.CreateResponse <LoginDetailsRef>(HttpStatusCode.BadRequest, loginref));
                    }
                }
            }
            catch (Exception xp)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, xp.Message));
            }
            return(null);
        }
Example #4
0
        public async System.Threading.Tasks.Task <ActionResult> AgentLogin(string UserName, string Password)
        {
            try
            {
                LoginDetailsRef loginref   = new LoginDetailsRef();
                LogInDetails    loginmodel = new LogInDetails();
                List <string>   Errors     = new List <string>();
                loginref.ErrorMessage = new List <string>();
                loginmodel.Errors     = new List <string>();
                var regexSpace = new Regex(@"\s");
                if (UserName == null || UserName == string.Empty || string.IsNullOrWhiteSpace(UserName.Trim()) || Password == null || Password == string.Empty || string.IsNullOrWhiteSpace(Password.Trim()))
                {
                    if (UserName == null || UserName == string.Empty || string.IsNullOrWhiteSpace(UserName.Trim()))
                    {
                        Errors.Add("User Name is required");
                    }
                    if (Password == null || Password == string.Empty || string.IsNullOrWhiteSpace(Password.Trim()))
                    {
                        Errors.Add("Password is required");
                    }
                }
                else
                {
                    string specialCharacters      = @"%!#$%^&*(-)?/><,:;'\|}]{[~`+=" + "\"";
                    char[] specialCharactersArray = specialCharacters.ToCharArray();
                    int    index = UserName.IndexOfAny(specialCharactersArray);
                    //index == -1 no special characters
                    if (index == -1)
                    {
                    }
                    else
                    {
                        Errors.Add("User Name allows only three special characters '_' '.' '@' ");
                    }
                    if (regexSpace.IsMatch(UserName.Trim()))
                    {
                        Errors.Add("User Name should not have space");
                    }
                    string justNumber  = new String(UserName.Trim().Where(Char.IsDigit).ToArray());
                    string justStrings = new String(UserName.Trim().Where(Char.IsLetter).ToArray());

                    if (justStrings == null || justStrings == string.Empty && UserName.Length <= 20)
                    {
                        Errors.Add("User Name does not allow only numeric values");
                    }
                }
                if (regexSpace.IsMatch(Convert.ToString(Password).Trim()))
                {
                    Errors.Add("Password should not have space");
                }

                if (Errors != null && Errors.Count() > 0)
                {
                    loginref.Status       = "Failure";
                    loginref.ErrorMessage = Errors;
                    return(View());
                }
                else
                {
                    //#region Remove
                    //LogInDetailsClass ld = new LogInDetailsClass();

                    //LoginDetailsRef LoginDetailsRef = new LoginDetailsRef();
                    //LoginDetailsRef.ErrorMessage = new List<string>();
                    //LoginDetailsRef = await ld.GetLogInDetailsPage(UserName, Password);
                    //{
                    //    if(LoginDetailsRef.ErrorMessage!=null && LoginDetailsRef.ErrorMessage.Count()>0)
                    //    {
                    //        loginmodel.Errors = LoginDetailsRef.ErrorMessage;
                    //        return View(loginmodel);
                    //    }
                    //}
                    //#endregion
                    if (await CommonUseFunctionClass.CheckUser(UserName, Password))
                    {
                        string str = CommonUseFunctionClass.GenerateToken(UserName, 20);
                        if (str != string.Empty || str != null || string.IsNullOrWhiteSpace(str.Trim()))
                        {
                            Session["IyId"]       = 9262;
                            loginref.Status       = "Success";
                            loginref.Access_Token = str;
                            loginmodel.UserName   = UserName;
                            loginref.LogInData    = loginmodel;
                            return(RedirectToAction("CustomerSearch", "Customer"));
                        }
                        else
                        {
                            loginref.Status = "Failure";
                            loginref.ErrorMessage.Add("Token is not generated");
                            ViewBag.ErrorMessage = "";
                            return(View());
                        }
                    }
                    else
                    {
                        loginref.Status = "Failure";
                        loginref.ErrorMessage.Add("User Name or Password are not valid.");
                        ViewBag.ErrorMessage = "User Name or Password are not valid.";
                        return(View());
                    }
                }
            }

            catch (Exception ex)
            {
                ViewBag.ErrorMessage = "User Name or Password are not valid.";
                return(View());
            }

            return(View());
        }
        public async Task <LoginDetailsRef> GetLogInDetailsPage(string UserName, string Password)
        {
            string strEncrypt        = string.Empty;
            string strDecrypt        = string.Empty;
            string PlainTextEncrpted = string.Empty;
            string loginKey          = string.Empty;
            int    IyId           = 9262;
            string EncrptForLogin = String.Format("{0:ddddyyyyMMdd}", DateTime.UtcNow);

            // EncrptForLogin = "******";
            PlainTextEncrpted = IyId + "|" + UserName + "|InsureThatDirect";
            loginKey          = Encrypt(PlainTextEncrpted, EncrptForLogin);
            LoginDetailsRef    loginDetailsref   = new LoginDetailsRef();
            LogInDetails       logindetailsmodel = new LogInDetails();
            MasterDataEntities db = new MasterDataEntities();

            loginDetailsref.ErrorMessage = new List <string>();
            try
            {
                HttpClient hclient = new HttpClient();
                string     url     = System.Configuration.ConfigurationManager.AppSettings["APIURL"];
                hclient.BaseAddress = new Uri(url);
                hclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                loginKey = loginKey.Replace("+", "%2B");
                loginDetailsref.ErrorMessage.Add("APISTARTED");
                HttpResponseMessage Res = await hclient.GetAsync("Login?loginKey=" + loginKey + ""); //change controller name and field name

                loginDetailsref.ErrorMessage.Add("APIExecuted");                                     //   LogInDetails loginmodel = new LogInDetails();
                if (Res.IsSuccessStatusCode)
                {
                    loginDetailsref.ErrorMessage.Add(Res.StatusCode.ToString());
                    //Storing the response details recieved from web api
                    var EmpResponse = Res.Content.ReadAsStringAsync().Result;
                    loginDetailsref.ErrorMessage.Add("Got Responce");
                    //Deserializing the response recieved from web api and storing into the Employee list // EncryptedPassword
                    logindetailsmodel = JsonConvert.DeserializeObject <LogInDetails>(EmpResponse);
                    loginDetailsref.ErrorMessage.Add("Deserialized");
                    //strEncrypt = Encrypt(Password, "TimsFirstEncryptionKey");//encrypt password method
                    // strDecrypt = Decrypt(strEncrypt, "TimsFirstEncryptionKey");//decrypt password method
                    strDecrypt = Decrypt(logindetailsmodel.EncryptedPassword, "TimsFirstEncryptionKey");
                    loginDetailsref.ErrorMessage.Add(strDecrypt);
                    if (logindetailsmodel.EncryptedPassword != null && strDecrypt == Password)
                    {
                        loginDetailsref.ErrorMessage.Add("Success");
                        loginDetailsref.Status     = "Success";
                        logindetailsmodel.UserName = UserName;
                        logindetailsmodel.Password = Password;
                        loginDetailsref.LogInData  = logindetailsmodel;
                        // Session["apiKey"] = logindetailsmodel.apiKey;
                        HttpContext.Current.Session["apiKey"]   = logindetailsmodel.apiKey;
                        HttpContext.Current.Session["UserName"] = logindetailsmodel.UserName;
                    }
                    else
                    {
                        loginDetailsref.Status = "Failure";
                        loginDetailsref.ErrorMessage.Add("Password is not valid.");
                    }
                }
            }
            catch (Exception xp)
            {
                loginDetailsref.ErrorMessage.Add("Catch");
                loginDetailsref.Status = "Failure";
                loginDetailsref.ErrorMessage.Add(xp.Message);
            }
            finally
            {
            }
            return(loginDetailsref);
        }