public static IAppBuilder UseInstagramInAuthentication(this IAppBuilder app, InstagramAuthenticationOptions options) { if (app == null) throw new ArgumentNullException(nameof(app)); if (options == null) throw new ArgumentNullException(nameof(options)); app.Use(typeof(InstagramAuthenticationMiddleware), app, options); return app; }
public static IAppBuilder UseInstagramInAuthentication(this IAppBuilder app, InstagramAuthenticationOptions options) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } app.Use(typeof(InstagramAuthenticationMiddleware), app, options); return(app); }
// For more information on configuring authentication, please visit http://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); // 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); // Get the config used by InstaSharp InstagramConfig config = Dependencies.InstagramConfig; // Wire up Instagram authentication so that we can access the media published by a user. var options = new InstagramAuthenticationOptions() { ClientId = config.ClientId, ClientSecret = config.ClientSecret, Provider = new InstagramAuthenticationProvider { OnAuthenticated = context => { // Retrieve the OAuth access token to store for subsequent API calls OAuthResponse response = new OAuthResponse { User = new UserInfo { Id = long.Parse(context.Id), FullName = context.Name, ProfilePicture = context.ProfilePicture, Username = context.UserName, }, AccessToken = context.AccessToken, }; string userId = context.Id; string accessToken = context.AccessToken; // Store the token in memory so that we can use it for accessing media. In a real scenario // this would be stored somewhere else. Dependencies.Tokens[userId] = response; return Task.FromResult(true); } } }; app.UseInstagramInAuthentication(options); }
// For more information on configuring authentication, please visit http://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); // 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: ""); var googleOAuth2AuthenticationOptions = new GoogleOAuth2AuthenticationOptions { ClientId = ConfigurationManager.AppSettings["googleplus.clientid"], ClientSecret = ConfigurationManager.AppSettings["googleplus.clientsecret"], CallbackPath = new PathString(ConfigurationManager.AppSettings["googleplus.redirecturi"]), Provider = new GoogleOAuth2AuthenticationProvider() { OnAuthenticated = async context => context.Identity .AddClaim(new Claim("urn:google:accesstoken", context.AccessToken, ClaimValueTypes.String, "Google")) }, SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie }; //googleOAuth2AuthenticationOptions.Scope.Add("email"); app.UseGoogleAuthentication(googleOAuth2AuthenticationOptions); var instagramOAuth2AuthenticationOptions = new InstagramAuthenticationOptions() { ClientId = ConfigurationManager.AppSettings["instagram.clientid"], ClientSecret = ConfigurationManager.AppSettings["instagram.clientsecret"], CallbackPath = new PathString(ConfigurationManager.AppSettings["instagram.redirecturi"]), //Provider = new InstagramAuthenticationProvider() //{ // OnAuthenticated = async context => context.Identity.AddClaim(new Claim("access_token", context.AccessToken)) //}, SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie }; //instagramOAuth2AuthenticationOptions.Scope.Add("access_token"); //instagramOAuth2AuthenticationOptions.Scope.Add("public_profile"); app.UseInstagramInAuthentication(instagramOAuth2AuthenticationOptions); }