//This happens everytime the Umbraco Application starts protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) { //Get the Umbraco Database context var ctx = applicationContext.DatabaseContext; var db = new DatabaseSchemaHelper(ctx.Database, applicationContext.ProfilingLogger.Logger, ctx.SqlSyntax); //Check if the DB table does NOT exist if (!db.TableExist(FortressConstants.TableNames.FortressUser2FASettings)) { //Create DB table - and set overwrite to false db.CreateTable <FortressUser2FASettings>(false); } /* if (!db.TableExist(FortressConstants.TableNames.FortressLoginEvents)) * { * //Create DB table - and set overwrite to false * db.CreateTable<FortressLoginEvent>(false); * }*/ if (!db.TableExist(FortressConstants.TableNames.FortressSettings)) { //Create DB table - and set overwrite to false db.CreateTable <FortressSettingEntry>(false); FortressSettingEntry.InsertInitialSettings(ctx.Database, ApplicationContext.Current.DatabaseContext.SqlSyntax); } /* if (!db.TableExist(FortressConstants.TableNames.FortressFirewallEntry)) * { * //Create DB table - and set overwrite to false * db.CreateTable<FortressFirewallEntry>(false); * }*/ FortressContext.Initialize(); }
private void AddSmsProviders(ref TreeNodeCollection nodes, string id, FormDataCollection queryStrings) { FortressContext.Initialize(); var providers = FortressContext.GetAllSmsProviders(); foreach (var provider in providers) { nodes.Add(CreateTreeNode(provider.Classname, id, queryStrings, provider.Name, "icon-notepad", false, MainRoute + "/TwoFactor/SMS-" + provider.Classname)); } }
public SMSSettingsModel GetSMSSettings() { var settings = SettingsCache.Instance; var viewModel = new SMSSettingsModel() { MessageFormat = settings.SMS_MessageFormat, Enabled = settings.SMS_Enabled, CurrentSMSProvider = settings.SMS_CurrentSMSProvider }; viewModel.SMSProviders = FortressContext.GetAllSmsProviders(); return(viewModel); }
public SMSProviderSettingsModel GetSMSProviderSettings(string ProviderName) { var type = Type.GetType(ProviderName); var smsAttr = type.GetCustomAttribute <SmsProviderAttribute>(); var allProviders = FortressContext.GetAllSmsProviders(); var thisProvider = allProviders.FirstOrDefault(x => x.Classname == ProviderName); var settings = SettingsCache.Instance; var viewModel = new SMSProviderSettingsModel() { Name = smsAttr.Name, ClassName = thisProvider.Classname }; viewModel.Settings = settings.GetPropertiesOnType(type); return(viewModel); }
Task IUserTokenProvider <BackOfficeIdentityUser, int> .NotifyAsync(string token, UserManager <BackOfficeIdentityUser, int> manager, BackOfficeIdentityUser user) { var db = new FortressDatabase(); var details = db.GetUserDetails(user.Id); var settings = db.GetSettingsFromDatabase(); if (details == null || !details.IsValidated || details.Provider == "SMS") { details.CurrentCode = token; details.CurrentCodeGenerated = DateTime.UtcNow; db.Update(details); } var SmsProvider = FortressContext.GetCurrentSmsProvider(); SmsProvider.SendSms(details.Configuration, string.Format(settings.SMS_MessageFormat, token)); return(Task.FromResult(true)); }
public HttpResponseMessage SetupSMS(string number) { var user = SignInManager.GetVerifiedUserId(); var details = CustomDatabase.GetUserDetails(user); if (details != null && details.IsValidated) { throw new UnauthorizedAccessException("This account has already setup SMS"); } var isNew = details == null; details = new FortressUser2FASettings(); details.UserId = user; details.Provider = "SMS"; details.Configuration = number; details.IsValidated = false; lock (syncLock) { var code = _random.Next(999999).ToString(); details.CurrentCode = code; details.CurrentCodeGenerated = DateTime.UtcNow; } if (isNew) { CustomDatabase.Insert(details); } else { CustomDatabase.Update(details); } var settings = CustomDatabase.GetSettingsFromDatabase(); var SmsProvider = FortressContext.GetCurrentSmsProvider(); SmsProvider.SendSms(details.Configuration, string.Format(settings.SMS_MessageFormat, details.CurrentCode)); var response = Request.CreateResponse(HttpStatusCode.OK, new { token = "123456" }); return(response); }