Пример #1
0
        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);
        }
Пример #3
0
        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"));
        }
Пример #4
0
        // 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));
        }
Пример #5
0
        /// <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;
 }
Пример #9
0
 public UserController(TokenProviderService tokenProviderService)
 {
     _tokenProviderService = tokenProviderService;
 }
Пример #10
0
 public AutenticacaoController(BaseControllerInjector injector, TokenProviderService token, IClienteService clienteService)
     : base(injector)
 {
     _token          = token;
     _clienteService = clienteService;
 }