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); }); }