public IActionResult ForgotPassword([Bind("emailAddress, password")] ForgotPassword model) { if (ModelState.IsValid) { var user = db.ProfileData.Where(e => e.Email == model.emailAddress).FirstOrDefault(); if (user != null) { string token = TokenProviderService.GenerateToken(); var salt = db.AccountData.Where(e => e.ProfileId == user.Id).FirstOrDefault(); string encryptedToken = EncryptionDecryptionService.Encrypt(token, user.Email, salt.Salt); PasswordForgottenEmail.SendPasswordForgottenEmail(user, encryptedToken, configuration); TempData["Email"] = model.emailAddress; return(RedirectToAction("ForgotPasswordConfirmation", "ForgotPassword")); } else { TempData["Email"] = model.emailAddress; return(RedirectToAction("ForgotPasswordConfirmation", "ForgotPassword")); } } else { return(View()); } }
public void DecodeToken() { var token = TokenProviderService.GenerateToken(); DateTime dateTime = TokenProviderService.GetDateTime(token); Assert.IsNotNull(token); }
public IActionResult LogIn(User user) { TokenProviderService _tokenProvider = new TokenProviderService(); //Authenticate user var userToken = _tokenProvider.GetToken(user.USERID.Trim(), user.PASSWORD.Trim()); if (userToken != null) { //Save token in session object HttpContext.Session.SetString("USERID", user.USERID.Trim()); HttpContext.Session.SetString("JWToken", userToken); } return(Redirect("~/User/Users")); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(OriginPolicyName, builder => { builder.WithOrigins("http://localhost:4200").AllowAnyHeader().WithExposedHeaders("WWW-Authenticate"); }); }); var jwtConfig = Configuration.GetSection("Auth").GetSection("JWT"); var key = jwtConfig.GetValue <string>("Key"); var issuer = jwtConfig.GetValue <string>("Issuer"); var audience = jwtConfig.GetValue <string>("Audience"); var tokenProvider = new TokenProviderService(key, issuer, audience); services.AddSingleton <ITokenProviderService>(tokenProvider); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = false; options.TokenValidationParameters = tokenProvider.GetValidationParameters(); }); services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddDbContext <TaxFormGeneratorContext> (options => options .UseLazyLoadingProxies() .UseNpgsql(Configuration.GetConnectionString("TaxFormGeneratorDb")) ); services.AddTransient(typeof(IRepository <>), typeof(GenericRepository <>)); // TODO: should it be transient? services.AddTransient(typeof(IAuthService), typeof(AuthService)); services.AddTransient(typeof(IPasswordHasher), typeof(PasswordHasher)); services.AddTransient(typeof(IAccountService), typeof(AccountService)); services.AddTransient(typeof(IUserSettingsService), typeof(UserSettingsService)); services.AddTransient(typeof(IFormService), typeof(FormService)); }
/// <summary> /// Show password reset page /// </summary> /// <param name="email">e-mail address of useraccount for which password will be changed </param> /// <param name="token">Token that has been provided by creation of password forgotten e-mail</param> /// <returns>A redirect to the Forgotpassword page or the page in which you can reset your password</returns> public IActionResult ResetPassword([FromQuery(Name = "email")] string email, [FromQuery(Name = "token")] string token) { if (email != null || token != null) { var user = db.ProfileData.Where(e => e.Email == email).FirstOrDefault(); if (user != null) { var salt = db.AccountData.Where(e => e.ProfileId == user.Id).FirstOrDefault(); var decryptedToken = EncryptionDecryptionService.Decrypt(token, user.Email, salt.Salt); if (decryptedToken != "Invalid") { DateTime dateTime = TokenProviderService.GetDateTime(decryptedToken); if (dateTime > DateTime.UtcNow.AddHours(-1)) { TempData["Email"] = email; return(View()); } else { return(RedirectToAction("ForgotPasswordError")); } } else { return(RedirectToAction("ForgotPasswordError")); } } else { return(RedirectToAction("ForgotPasswordError")); } } else { return(RedirectToAction("ForgotPasswordError")); } }
public AuthenticationController(TokenOptions tokenOptions, TokenProviderService tokenProviderService) { _tokenOptions = tokenOptions; _tokenProviderService = tokenProviderService; }
public void GenerateToken() { var token = TokenProviderService.GenerateToken(); Assert.IsNotNull(token); }
public AuthController(TokenProviderService tokenProvider, IUserRepository users) { _tokenProvider = tokenProvider; _users = users; }
public UserController(TokenProviderService tokenProviderService) { _tokenProviderService = tokenProviderService; }
public AutenticacaoController(BaseControllerInjector injector, TokenProviderService token, IClienteService clienteService) : base(injector) { _token = token; _clienteService = clienteService; }