public static void CreateIdentity(MvcIdentityModel identity) { var computed = MvcIdentityModel.New(identity); computed.Password = SecurePassword.Hash(computed.Password); computed.Password2 = computed.Password; computed.Status = "active"; Database.Insert("identities", computed.ToDbModel()); }
public IActionResult Index(AuthenticationIdentity identity) { if (!ModelState.IsValid) { return(View("Authentication", identity)); } MvcIdentityModel computed = Identity.GetIdentityByEmail(identity.Email); if (computed == default(MvcIdentityModel)) { ModelState.AddModelError("General", "The entered email and/or password is incorrect!"); return(View("Authentication", identity)); } if (!computed.VerifyPassword(identity.Password)) { ModelState.AddModelError("General", "The entered email and/or password is incorrect!"); return(View("Authentication", identity)); } var sid = Request.Cookies.ContainsKey("SID") ? Guid.Parse(Request.Cookies["SID"]) : Guid.Empty; if (sid == Guid.Empty) { ModelState.AddModelError("General", "The session ID was lost between authentication steps!"); return(View("Authentication", identity)); } var session = SessionStore.GetSession(sid); var authRequest = session.GetAttribute <AuthRequestPayload>("AuthRequest"); var authResponse = new AuthResponsePayload() { Authenticated = true, RequestId = authRequest.RequestId, SessionId = session.Guid, SessionExpiry = session.ExpiryTime, Identity = computed.ToBaseModel() }; session["AuthPayload"] = authResponse; HttpHandler.Post(authRequest.ResponseUri, authResponse.Encode()).Wait(); return(Redirect(authRequest.RedirectUri.ToString())); }
public IActionResult Index(MvcIdentityModel identity) { if (!ModelState.IsValid) { return(View("Registration", identity)); } if (!UsernameAvailable(identity.Username)) { ModelState.AddModelError("Username", "This username is already taken!"); return(View("Registration", identity)); } if (!EmailAvailable(identity.Email)) { ModelState.AddModelError("Email", "This email is already in use!"); return(View("Registration", identity)); } var authIdentity = new AuthenticationIdentity() { Email = identity.Email, NewAccount = true, PendingActivation = true }; identity.IpAddress = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); var activationToken = RandomData.String(16); var pendingActivation = new PendingActivationIdentity() { ActivationToken = activationToken, Identity = identity }; CacheStore.Create(activationToken, DateTime.UtcNow.AddHours(1), pendingActivation); SendGridHandler.SendRegistrationMail(identity, activationToken).Wait(); return(RedirectToAction("Index", "Authentication", authIdentity)); }
public static async Task <bool> SendRegistrationMail(MvcIdentityModel identity, string activationToken) { var subject = $"Welcome to Andrei Hava Systems, {identity.FirstName}!"; var to = new EmailAddress(identity.Email, $"{identity.FirstName} {identity.LastName}"); var variableValues = new Dictionary <string, string>() { { "$FirstName$", identity.FirstName }, { "$LastName$", identity.LastName }, { "$Username$", identity.Username }, { "$Email$", identity.Email }, { "$ActivationUrl$", $"https://id.andreihava.net/activate?ActivationToken={activationToken}" }, { "$RegistrationIp$", identity.IpAddress } }; var templates = EmailTemplates.GetTemplate("registration", variableValues); var email = MailHelper.CreateSingleEmail(_fromAddress, to, subject, templates.Value, templates.Key); var response = await _client.SendEmailAsync(email); return(response.StatusCode == HttpStatusCode.Accepted); }
public static MvcIdentityModel GetIdentityByToken(string token) { var dbIdentity = Database.GetOne <DatabaseIdentityModel>("identities", $"token = '{token}'"); return(MvcIdentityModel.New(dbIdentity)); }
public static MvcIdentityModel GetIdentityByUsername(string username) { var dbIdentity = Database.GetOne <DatabaseIdentityModel>("identities", $"username = '******'"); return(MvcIdentityModel.New(dbIdentity)); }
public static MvcIdentityModel GetIdentityByEmail(string email) { var dbIdentity = Database.GetOne <DatabaseIdentityModel>("identities", $"email = '{email}'"); return(MvcIdentityModel.New(dbIdentity)); }
public static MvcIdentityModel GetIdentityByGuid(Guid guid) { var dbIdentity = Database.GetOne <DatabaseIdentityModel>("identities", $"id = '{guid}'"); return(MvcIdentityModel.New(dbIdentity)); }