Ejemplo n.º 1
0
        protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider = this.GetIdentityProvider();
            var provider = new FacebookAuthenticationProvider
            {
                OnAuthenticated = (context) =>
                {
                    context.Identity.ApplyClaimsTransformations(new Owin.Authentication.Services.TransformationContext(this.FederatedAuthenticationConfiguration, IdentityProvider));
                    return(Task.CompletedTask);
                },
                OnReturnEndpoint = (context) =>
                {
                    return(Task.CompletedTask);
                }
            };

            FacebookAuthenticationOptions fbAuthOptions = new FacebookAuthenticationOptions
            {
                AppId              = Configuration.Settings.GetSetting("FedAuth.Facebook.AppId"),
                AppSecret          = Configuration.Settings.GetSetting("FedAuth.Facebook.AppSecret"),
                Provider           = provider,
                CallbackPath       = new PathString("/signin-facebook"),
                AuthenticationType = IdentityProvider.Name
            };

            fbAuthOptions.Scope.Add("email");
            fbAuthOptions.Fields.Add("name");
            fbAuthOptions.Fields.Add("email");
            args.App.UseFacebookAuthentication(fbAuthOptions);
        }
        protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider identityProvider   = this.GetIdentityProvider();
            string           authenticationType = this.GetAuthenticationType();

            var facebookProvider = new FacebookAuthenticationProvider()
            {
                OnAuthenticated = (context) =>
                {
                    // transform all claims
                    ClaimsIdentity identity = context.Identity;
                    foreach (Transformation current in identityProvider.Transformations)
                    {
                        current.Transform(identity, new TransformationContext(FederatedAuthenticationConfiguration, identityProvider));
                    }
                    return(System.Threading.Tasks.Task.FromResult(0));
                },

                OnReturnEndpoint = (context) =>
                {
                    if (context.Request.Query["state"] != null)
                    {
                        var state = HttpUtility.ParseQueryString(context.Request.Query["state"]);
                        //todo: do something with it.
                    }

                    return(System.Threading.Tasks.Task.FromResult(0));
                }
            };

            FacebookAuthenticationOptions options = new FacebookAuthenticationOptions();

            options.AppId        = "2054803864733162";
            options.AppSecret    = "c73b086a7fcf315ae7c5ce21877d8798";
            options.Provider     = facebookProvider;
            options.CallbackPath = new PathString("/signin-facebook");
            options.Fields.Add("name");
            options.Fields.Add("email");
            options.Scope.Add("email");
            args.App.UseFacebookAuthentication(options);
        }
Ejemplo n.º 3
0
        // 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: "");

            var x = new FacebookAuthenticationProvider()
            {
                OnAuthenticated = async context =>
                                  context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken", context.AccessToken))
            };

            var f = new FacebookAuthenticationOptions()
            {
                AppId     = "382105955290612",
                AppSecret = "87b50c29f0c531f22f080b72cd62a5ec",
                Provider  = x
            };

            app.UseFacebookAuthentication(f);

            //app.UseFacebookAuthentication(
            //   appId: "382105955290612",
            //   appSecret: "87b50c29f0c531f22f080b72cd62a5ec");


            app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            {
                ClientId     = "453506101300-hrmnjibba5g7m60eda9vdgg3s96hhl8j.apps.googleusercontent.com",
                ClientSecret = "bH8ycqKLIBJIa0iio_sibDvb"
            });
        }
Ejemplo n.º 4
0
        // 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);

            // 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

            //==
            var provider = new CookieAuthenticationProvider {
                OnException = context => { }
            };

            //==
            app.UseCookieAuthentication(new CookieAuthenticationOptions()
            {
                Provider = 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
            if (!String.IsNullOrEmpty(MicrosoftClientID) && !String.IsNullOrEmpty(MicrosoftSecret))
            {
                app.UseMicrosoftAccountAuthentication(MicrosoftClientID, MicrosoftSecret);
            }

            if (!String.IsNullOrEmpty(TwitterSecret) && !String.IsNullOrEmpty(TwitterSecret))
            {
                app.UseTwitterAuthentication(TwitterKey, TwitterSecret);
            }

            if (!String.IsNullOrEmpty(FacebookAppID) && !String.IsNullOrEmpty(FacebookSecret))
            {
                //app.UseFacebookAuthentication(FacebookAppID, FacebookSecret);
                var facebookProvider = new FacebookAuthenticationProvider()
                {
                    OnAuthenticated = (context) =>
                    {
                        // Add the email id to the claim
                        context.Identity.AddClaim(new Claim(ClaimTypes.Email, context.Email));
                        return(Task.FromResult(0));
                    }
                };
                var options = new FacebookAuthenticationOptions()
                {
                    AppId     = FacebookAppID,
                    AppSecret = FacebookSecret,
                    Provider  = facebookProvider
                };
                options.Scope.Add("email");
                app.UseFacebookAuthentication(options);
            }


            if (!String.IsNullOrEmpty(GoogleClientID) && !String.IsNullOrEmpty(GoogleSecret))
            {
                app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
                {
                    ClientId     = GoogleClientID,
                    ClientSecret = GoogleSecret
                });
            }
        }
 /// <summary>
 /// Initializes Facebook for use with Parse.
 /// </summary>
 /// <param name="serviceHub">The service hub to use.</param>
 /// <param name="authenticator">The <see cref="FacebookAuthenticationProvider"/> instance to use for Facebook authentication.</param>
 public static void InitializeFacebookAuthentication(this IServiceHub serviceHub, FacebookAuthenticationProvider authenticator)
 {
     if (authenticator is IServiceHubMutator {
         Valid : true
     })
Ejemplo n.º 6
0
        // 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);

            // 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
            var provider = new CookieAuthenticationProvider {
                OnException = context => { }
            };

            app.UseCookieAuthentication(new CookieAuthenticationOptions()
            {
                Provider = provider
            });
            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),
                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: "");
            var facebookProvider = new FacebookAuthenticationProvider()
            {
                OnAuthenticated = (context) =>
                {
                    // Add the email id to the claim
                    context.Identity.AddClaim(new Claim(ClaimTypes.Email, context.Email));
                    return(Task.FromResult(0));
                }
            };
            var options = new FacebookAuthenticationOptions()
            {
                AppId     = "827541077270473",
                AppSecret = "aa63a79f14dff2a568db23b90bbfd6d7",
                Provider  = facebookProvider
            };

            options.Scope.Add("email");
            app.UseFacebookAuthentication(options);

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }