public ClientInformation(TokenResponse token, AuthEndpoints authType, Resources resource, string clientID, string clientSecret, string scopes, string redirectUri)
 {
     Token        = token;
     AuthType     = authType;
     Resource     = resource;
     ClientID     = clientID;
     ClientSecret = clientSecret;
     Scopes       = scopes;
     RedirectUri  = redirectUri;
 }
Пример #2
0
        public DialogResult ShowDialog(out ClientInformation ClientInfo)
        {
            DialogResult dialogResult = this.ShowDialog();

            // Build return values.
            // Those values are used to acquire another access token.

            TokenResponse AccessToken;
            string        Resource;
            string        ClientID;
            string        ClientSecret;
            string        Scopes;
            string        RedirectUri;
            bool          UseV2Endpoint;

            AuthEndpoints authEndpoint = new AuthEndpoints();

            if (_tokenResponse.access_token == null && _tokenResponse.id_token != null)
            {
                // Using OpenID Connect
                _tokenResponse.access_token = _tokenResponse.id_token;
            }

            AccessToken = _tokenResponse;

            if (radioButton_WebApp.Checked)
            {
                Resource      = _resource;
                ClientID      = textBox_WebAppClientID.Text;
                ClientSecret  = textBox_WebAppClientSecret.Text;
                Scopes        = "";
                RedirectUri   = "";
                UseV2Endpoint = false;

                authEndpoint = AuthEndpoints.OAuthV1;
            }
            else if (radioButton_NativeApp.Checked)
            {
                Resource      = _resource;
                ClientID      = "";
                ClientSecret  = "";
                Scopes        = "";
                RedirectUri   = "";
                UseV2Endpoint = false;

                authEndpoint = AuthEndpoints.OAuthV1;
            }
            else if (radioButton_V2MobileApp.Checked)
            {
                Resource      = "";
                ClientID      = textBox_V2MobileAppClientID.Text;
                ClientSecret  = "";
                Scopes        = textBox_V2MobileAppScopes.Text;
                RedirectUri   = textBox_V2MobileAppRedirectUri.Text;
                UseV2Endpoint = true;

                authEndpoint = AuthEndpoints.OAuthV2;
            }
            else if (radioButton_V2WebApp.Checked)
            {
                Resource      = "";
                ClientID      = textBox_V2WebAppClientID.Text;
                ClientSecret  = textBox_V2WebAppClientSecret.Text;
                Scopes        = textBox_V2WebAppScopes.Text;
                RedirectUri   = textBox_V2WebAppRedirectUri.Text;
                UseV2Endpoint = true;

                authEndpoint = AuthEndpoints.OAuthV2;
            }
            else
            {
                Resource      = "";
                ClientID      = "";
                ClientSecret  = "";
                Scopes        = "";
                RedirectUri   = "";
                UseV2Endpoint = false;

                authEndpoint = AuthEndpoints.Basic;
            }

            Resources resource = new Resources();

            if (Resource == "Exchange Online")
            {
                resource = Resources.Outlook;
            }
            else if (Resource == "Microsoft Graph")
            {
                resource = Resources.Graph;
            }
            else if (Resource == "Office 365 Management API")
            {
                resource = Resources.Management;
            }
            else
            {
                resource = Resources.None;
            }

            ClientInformation result = new ClientInformation(AccessToken, authEndpoint, resource, ClientID, ClientSecret, Scopes, RedirectUri);

            ClientInfo = result;
            return(dialogResult);
        }