/// <summary> /// Обновить схемы базы данных /// </summary> public async Task UpdateSchema(UserManager <IdentityUser> userManager, IResultCollection <BoutiqueUser> defaultUsers) { await Database.EnsureCreatedAsync(); await Database.MigrateAsync(); await IdentityInitialize.Initialize(this, userManager, defaultUsers); }
// For more information on configuring authentication, please visit https://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context, user manager and signin manager to use a single instance per request app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create); app.CreatePerOwinContext <ApplicationSignInManager>(ApplicationSignInManager.Create); // Create Initial account for Andrew and Yura IdentityInitialize.LoadUserAccounts(); // Enable the application to use a cookie to store information for the signed in user // and to use a cookie to temporarily store information about a user logging in with a third party login provider // Configure the sign in cookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process. app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); // Enables the application to remember the second login verification factor such as phone or email. // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from. // This is similar to the RememberMe option when you log in. app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); // Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //}); }
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context and user manager to use a single instance per request app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create); // Initialize identity data IdentityInitialize.LoadUserAccounts(); IdentityInitialize.LoadAppClaims(); // Enable the application to use a cookie to store information for the signed in user // and to use a cookie to temporarily store information about a user logging in with a third party login provider app.UseCookieAuthentication(new CookieAuthenticationOptions()); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Configure the application for OAuth based flow PublicClientId = "self"; OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/Token"), Provider = new ApplicationOAuthProvider(PublicClientId), AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), // In production mode set AllowInsecureHttp = false AllowInsecureHttp = true }; // Enable the application to use bearer tokens to authenticate users app.UseOAuthBearerTokens(OAuthOptions); // Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //}); }
// FYI - Info about static properties... // https://msdn.microsoft.com/en-us/library/w86s7x04.aspx#Anchor_2 // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context and user manager to use a single instance per request // Initialize the data context (and therefore Entity Framework and a database connection) app.CreatePerOwinContext(ApplicationDbContext.Create); // Initialize the ASP.NET Identity user manager object (which is used elsewhere in the app) app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create); // Initialize the ASP.NET Identity sign in manager object (which is used elsewhere in the app) app.CreatePerOwinContext <ApplicationSignInManager>(ApplicationSignInManager.Create); // Initialize user accounts for the app IdentityInitialize.LoadUserAccounts(); // Initialize claims for the app IdentityInitialize.LoadAppClaims(); // Enable the application to use a cookie to store information for the signed in user // Here, configure the cookie's options (there are other options too) app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), CookieName = "senecaict786a20e4b6c82f2b", Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromDays(14), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager, DefaultAuthenticationTypes.ApplicationCookie)) } }); // Enable the application to use a cookie to temporarily store // information about a user logging in with a third party login provider app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Configure the application for OAuth based flow PublicClientId = "self"; // Here, configure the access token's options (there are other options too) OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/Token"), Provider = new ApplicationOAuthProvider(PublicClientId), AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), // In production mode set AllowInsecureHttp = false AllowInsecureHttp = true }; // The following command does two very important tasks... app.UseOAuthBearerTokens(OAuthOptions); // First... // Enable the app to ISSUE "Bearer" access tokens // Configure the /token endpoint to listen for requests for access tokens // Second... // Enable the app to VALIDATE "Bearer" access tokens // Can extract (read) an access token in the "Authorization" request header // If valid, then it can create an IPrincipal and attach it to the request thread // In summary, the one method above - UseOAuthBearerTokens - essentially runs // two separate methods... // UseOAuthAuthorizationServer() - authenticate credentials, issue a cookie or token // UseOAuthBearerAuthentication() - validate an access token (in an incoming request) // Reference: // http://stackoverflow.com/a/28049897 // More info... // UseOAuthAuthorizationServer() - authenticate credentials, issue a cookie or token // Adds OAuth2 Authorization Server capabilities to an OWIN web application. // This middleware performs the request processing for the Authorize and Token endpoints, // which are defined by the OAuth2 specification. // Reference: // https://msdn.microsoft.com/en-us/library/owin.oauthauthorizationserverextensions.useoauthauthorizationserver(v=vs.113).aspx // UseOAuthBearerAuthentication() - validate an access token (in an incoming request) // Adds Bearer token processing to an OWIN application pipeline. // This middleware understands appropriately formatted and secured tokens // which appear in the request header. The claims within the token are added to the // current request's IPrincipal User. // Reference: // https://msdn.microsoft.com/en-us/library/owin.oauthbearerauthenticationextensions.useoauthbearerauthentication(v=vs.113).aspx // Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //}); }