public ActionResult OwinEdit() { EditModel model = new EditModel { }; model.RequireDigit = OwinConfigHelper.GetValue <bool>(Module.AreaName, "Password:RequireDigit", false); model.RequiredLength = OwinConfigHelper.GetValue <int>(Module.AreaName, "Password:RequiredLength", 6); model.RequireNonAlphanumeric = OwinConfigHelper.GetValue <bool>(Module.AreaName, "Password:RequireNonAlphanumeric", false); model.RequireUppercase = OwinConfigHelper.GetValue <bool>(Module.AreaName, "Password:RequireUppercase", false); model.RequireLowercase = OwinConfigHelper.GetValue <bool>(Module.AreaName, "Password:RequireLowercase", false); model.SlidingExpiration = OwinConfigHelper.GetValue <bool>(Module.AreaName, "OWin:SlidingExpiration", true); long ticks = OwinConfigHelper.GetValue <long>(Module.AreaName, "OWin:ExpireTimeSpan", new TimeSpan(10, 0, 0, 0).Ticks); // 10 days model.ExpireTimeSpan = new TimeSpan(ticks); ticks = OwinConfigHelper.GetValue <long>(Module.AreaName, "OWin:SecurityStampValidationInterval", new TimeSpan(0, 30, 0).Ticks); // 30 minutes model.SecurityStampValidationInterval = new TimeSpan(ticks); ticks = OwinConfigHelper.GetValue <long>(Module.AreaName, "PasswordRenewal", new TimeSpan(0, 0, 0).Ticks); // 0 = indefinitely model.PasswordRenewal = new TimeSpan(ticks); model.UseMicrosoft = OwinConfigHelper.GetValue <bool>(Module.AreaName, "MicrosoftAccount:Enabled"); model.MicrosoftPublic = OwinConfigHelper.GetValue <string>(Module.AreaName, "MicrosoftAccount:Public"); model.MicrosoftPrivate = OwinConfigHelper.GetValue <string>(Module.AreaName, "MicrosoftAccount:Private"); model.UseGoogle = OwinConfigHelper.GetValue <bool>(Module.AreaName, "GoogleAccount:Enabled"); model.GooglePublic = OwinConfigHelper.GetValue <string>(Module.AreaName, "GoogleAccount:Public"); model.GooglePrivate = OwinConfigHelper.GetValue <string>(Module.AreaName, "GoogleAccount:Private"); model.UseFacebook = OwinConfigHelper.GetValue <bool>(Module.AreaName, "FacebookAccount:Enabled"); model.FacebookPublic = OwinConfigHelper.GetValue <string>(Module.AreaName, "FacebookAccount:Public"); model.FacebookPrivate = OwinConfigHelper.GetValue <string>(Module.AreaName, "FacebookAccount:Private"); model.UseTwitter = OwinConfigHelper.GetValue <bool>(Module.AreaName, "TwitterAccount:Enabled"); model.TwitterPublic = OwinConfigHelper.GetValue <string>(Module.AreaName, "TwitterAccount:Public"); model.TwitterPrivate = OwinConfigHelper.GetValue <string>(Module.AreaName, "TwitterAccount:Private"); return(View(model)); }
public void SetupLoginProviders(IServiceCollection services) { // https://github.com/aspnet/Security/issues/1310 AuthenticationBuilder authBuilder = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme); { string pub = OwinConfigHelper.GetValue <string>(AREA, "FacebookAccount:Public"); string priv = OwinConfigHelper.GetValue <string>(AREA, "FacebookAccount:Private"); if (!string.IsNullOrWhiteSpace(pub) && !string.IsNullOrWhiteSpace(priv)) { authBuilder.AddFacebook(o => { o.AppId = pub; o.AppSecret = priv; }); } } { string pub = OwinConfigHelper.GetValue <string>(AREA, "GoogleAccount:Public"); string priv = OwinConfigHelper.GetValue <string>(AREA, "GoogleAccount:Private"); if (!string.IsNullOrWhiteSpace(pub) && !string.IsNullOrWhiteSpace(priv)) { authBuilder.AddGoogle(o => { o.ClientId = pub; o.ClientSecret = priv; }); } } { string pub = OwinConfigHelper.GetValue <string>(AREA, "TwitterAccount:Public"); string priv = OwinConfigHelper.GetValue <string>(AREA, "TwitterAccount:Private"); if (!string.IsNullOrWhiteSpace(pub) && !string.IsNullOrWhiteSpace(priv)) { authBuilder.AddTwitter(o => { o.ConsumerKey = pub; o.ConsumerSecret = priv; }); } } { string pub = OwinConfigHelper.GetValue <string>(AREA, "MicrosoftAccount:Public"); string priv = OwinConfigHelper.GetValue <string>(AREA, "MicrosoftAccount:Private"); if (!string.IsNullOrWhiteSpace(pub) && !string.IsNullOrWhiteSpace(priv)) { authBuilder.AddMicrosoftAccount(o => { o.ClientId = pub; o.ClientSecret = priv; }); } } authBuilder.AddDynamicAuthentication(); }
public void Setup(IServiceCollection services) { string login = WebConfigHelper.GetValue <string>(AREA, "LoginProviderSettings"); if (!string.IsNullOrWhiteSpace(login)) { OwinConfigHelper.InitAsync(Path.Combine(YetaWFManager.RootFolderWebProject, login)).Wait();// wait ok, startup only, load login provider settings } services.AddIdentity <UserDefinition, RoleDefinition>() .AddUserStore <UserStore>() .AddRoleStore <RoleStore>(); services.Configure <IdentityOptions>(options => { // Password settings options.Password.RequireDigit = OwinConfigHelper.GetValue <bool>(AREA, "Password:RequireDigit", false); options.Password.RequiredLength = OwinConfigHelper.GetValue <int>(AREA, "Password:RequiredLength", 6); options.Password.RequireNonAlphanumeric = OwinConfigHelper.GetValue <bool>(AREA, "Password:RequireNonAlphanumeric", false); options.Password.RequireUppercase = OwinConfigHelper.GetValue <bool>(AREA, "Password:RequireUppercase", false); options.Password.RequireLowercase = OwinConfigHelper.GetValue <bool>(AREA, "Password:RequireLowercase", false); // long secIntvl = OwinConfigHelper.GetValue<long>(AREA, "OWin:SecurityStampValidationInterval", new TimeSpan(0, 30, 0).Ticks); // 30 minutes // We handle lockouts options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(0); options.Lockout.MaxFailedAccessAttempts = 0; // User settings // the default is acceptable: options.User.AllowedUserNameCharacters // We handle email/name ourselves options.User.RequireUniqueEmail = false; }); services.ConfigureApplicationCookie(c => { long ticks = OwinConfigHelper.GetValue <long>(AREA, "OWin:ExpireTimeSpan", new TimeSpan(10, 0, 0, 0).Ticks); c.Cookie.Name = string.Format(".YetaWF.Cookies.{0}", YetaWFManager.DefaultSiteName); c.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.SameAsRequest; c.Cookie.SameSite = OwinConfigHelper.GetValue <Microsoft.AspNetCore.Http.SameSiteMode>(AREA, "OWin:SameSiteMode", Microsoft.AspNetCore.Http.SameSiteMode.Strict); c.ExpireTimeSpan = new TimeSpan(ticks); c.SlidingExpiration = OwinConfigHelper.GetValue <bool>(AREA, "OWin:SlidingExpiration", true); }); services.ConfigureExternalCookie(c => { long ticks = OwinConfigHelper.GetValue <long>(AREA, "OWin:ExpireTimeSpan", new TimeSpan(10, 0, 0, 0).Ticks); c.Cookie.Name = string.Format(".YetaWF.Cookies.Ext.{0}", YetaWFManager.DefaultSiteName); c.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.SameAsRequest; c.Cookie.SameSite = OwinConfigHelper.GetValue <Microsoft.AspNetCore.Http.SameSiteMode>(AREA, "OWin:SameSiteMode", Microsoft.AspNetCore.Http.SameSiteMode.Strict); c.ExpireTimeSpan = new TimeSpan(ticks); c.SlidingExpiration = OwinConfigHelper.GetValue <bool>(AREA, "OWin:SlidingExpiration", true); }); }
public async Task <ActionResult> OwinEdit_Partial(EditModel model) { if (!ModelState.IsValid) { return(PartialView(model)); } if (model.ExpireTimeSpan < new TimeSpan(0, 10, 0)) { ModelState.AddModelError(nameof(model.ExpireTimeSpan), this.__ResStr("timeSpan", "The minimum expiration timespan should be at least 10 minutes")); return(PartialView(model)); } if (model.SecurityStampValidationInterval < new TimeSpan(0, 1, 0)) { ModelState.AddModelError(nameof(model.SecurityStampValidationInterval), this.__ResStr("securityInterval", "The minimum validation interval should be at least 1 minute")); return(PartialView(model)); } OwinConfigHelper.SetValue <bool>(Module.AreaName, "Password:RequireDigit", model.RequireDigit); OwinConfigHelper.SetValue <int>(Module.AreaName, "Password:RequiredLength", model.RequiredLength); OwinConfigHelper.SetValue <bool>(Module.AreaName, "Password:RequireNonAlphanumeric", model.RequireNonAlphanumeric); OwinConfigHelper.SetValue <bool>(Module.AreaName, "Password:RequireUppercase", model.RequireUppercase); OwinConfigHelper.SetValue <bool>(Module.AreaName, "Password:RequireLowercase", model.RequireLowercase); OwinConfigHelper.SetValue <bool>(Module.AreaName, "OWin:SlidingExpiration", model.SlidingExpiration); OwinConfigHelper.SetValue <long>(Module.AreaName, "OWin:ExpireTimeSpan", model.ExpireTimeSpan.Ticks); OwinConfigHelper.SetValue <long>(Module.AreaName, "OWin:SecurityStampValidationInterval", model.SecurityStampValidationInterval.Ticks); OwinConfigHelper.SetValue <long>(Module.AreaName, "PasswordRenewal", model.PasswordRenewal.Ticks); OwinConfigHelper.SetValue <bool>(Module.AreaName, "MicrosoftAccount:Enabled", model.UseMicrosoft); OwinConfigHelper.SetValue <string>(Module.AreaName, "MicrosoftAccount:Public", model.MicrosoftPublic); OwinConfigHelper.SetValue <string>(Module.AreaName, "MicrosoftAccount:Private", model.MicrosoftPrivate); OwinConfigHelper.SetValue <bool>(Module.AreaName, "GoogleAccount:Enabled", model.UseGoogle); OwinConfigHelper.SetValue <string>(Module.AreaName, "GoogleAccount:Public", model.GooglePublic); OwinConfigHelper.SetValue <string>(Module.AreaName, "GoogleAccount:Private", model.GooglePrivate); OwinConfigHelper.SetValue <bool>(Module.AreaName, "FacebookAccount:Enabled", model.UseFacebook); OwinConfigHelper.SetValue <string>(Module.AreaName, "FacebookAccount:Public", model.FacebookPublic); OwinConfigHelper.SetValue <string>(Module.AreaName, "FacebookAccount:Private", model.FacebookPrivate); OwinConfigHelper.SetValue <bool>(Module.AreaName, "TwitterAccount:Enabled", model.UseTwitter); OwinConfigHelper.SetValue <string>(Module.AreaName, "TwitterAccount:Public", model.TwitterPublic); OwinConfigHelper.SetValue <string>(Module.AreaName, "TwitterAccount:Private", model.TwitterPrivate); await OwinConfigHelper.SaveAsync(); await Auditing.AddAuditAsync($"{nameof(OwinEditModuleController)}.{nameof(OwinEdit_Partial)}", "Login", Guid.Empty, $"{nameof(OwinEdit_Partial)}", RequiresRestart : true ); return(FormProcessed(model, this.__ResStr("okSaved", "Login provider settings successfully saved - These settings won't take effect until the site (including all instances) is restarted."), NextPage: Manager.CurrentSite.HomePageUrl)); }
public ActionResult Location(LocationDto model) { OwinConfigHelper helper = new OwinConfigHelper(); return(Success(helper.SetLocation(model))); }