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 { } }
// 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); }
// 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); }
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); }