示例#1
0
        public static void RegisterOpenAuth()
        {
            var extraData = new Dictionary <string, string>();
            // See http://go.microsoft.com/fwlink/?LinkId=252803 for details on setting up this ASP.NET
            // application to support logging in via external services.

            //OpenAuth.AuthenticationClients.AddTwitter(
            //    consumerKey: "your Twitter consumer key",
            //    consumerSecret: "your Twitter consumer secret");

            var clientF = new FacebookOAuth2Client("748096399254392",
                                                   "38c86be9252aba1dde6307ba114c4a79");

            OpenAuth.AuthenticationClients.Add("Facebook", () => clientF, extraData);

            //OpenAuth.AuthenticationClients.AddMicrosoft(
            //    clientId: "your Microsoft account client id",
            //    clientSecret: "your Microsoft account client secret");

            //OpenAuth.AuthenticationClients.AddGoogle();
            var clientG = new GoogleOAuth2Client("337461708184-a40ahhpbvn24h2ub6gbqn6ljn2h1ath9.apps.googleusercontent.com",
                                                 "iDDgWvaWH6RdOMUzdWAyfLpP");

            OpenAuth.AuthenticationClients.Add("Google", () => clientG, extraData);
        }
示例#2
0
        private async Task StartFacebookFlow(SampleSettings settings)
        {
            var client = new FacebookOAuth2Client(settings.ToOAuth2ClientBuilder());

            // Get OAuth2 request URI
            var options = new FacebookOAuth2ClientCreateAuthorizationUriOption();

            options.Scope.Add("email");
            var requestUri = await client.CreateAuthorizationUriAsync(options);

            var f = new OAuth2Window(requestUri.AbsoluteUri, settings.RedirectUri);

            if (f.ShowDialog() != true)
            {
                return;
            }

            var returnedUri = f.ReturnedUri;

            this.PrintOutput("Redirect Uri: " + returnedUri.AbsoluteUri);

            var parameters = returnedUri.ParseQueryString();

            var state = parameters["state"];

            if (state != options.State)
            {
                this.PrintOutput("WARNING: State is not returned or does not match");
            }

            var error = parameters["error"];

            if (!string.IsNullOrEmpty(error))
            {
                this.PrintOutput("Error returned: " + error);
                return;
            }

            var code = parameters["code"];

            if (string.IsNullOrEmpty(code))
            {
                this.PrintOutput("No code in the returned uri.");
                return;
            }

            var accessToken = await client.RequestAccessTokenAsync(code);

            this.PrintOutput("Access Token: " + Environment.NewLine + JsonConvert.SerializeObject(accessToken));

            await client.RequestAppAccessTokenAsync();

            this.PrintOutput("App Access Token: " + client.AppAccessToken.AccessToken);

            var userInfo = await client.GetUserInfoAsync(accessToken.AccessToken);

            this.PrintOutput("User Info: " + Environment.NewLine + JsonConvert.SerializeObject(userInfo));

            this.PrintOutput("Done!");
        }
        public void Initialize()
        {
            this.settings             = TestSettings.Instance;
            this.facebookSettings     = settings.OAuth.Facebook;
            this.facebookClientConfig = ServicesClientConfigs.Facebook;

            this.builder = settings.OAuth.Facebook.ToBuilder();
            this.client  = new FacebookOAuth2Client(this.builder);
        }