protected override void ProcessRecord() { PSCredential creds = null; if (Credentials != null) { creds = Credentials.Credential; } if (ParameterSetName == "Token") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), Realm, AppId, AppSecret, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (UseWebLogin) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateWebloginConnection(new Uri(Url), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (UseAdfs) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateAdfsConnection(new Uri(Url), creds, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } #if !ONPREMISES else if (ParameterSetName == "NativeAAD") { if (ClearTokenCache) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFile = Path.Combine(appDataFolder, "SharePointPnP.PowerShell\\tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection(new Uri(Url), ClientId, new Uri(RedirectUri), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (ParameterSetName == "AppOnlyAAD") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADAppOnlyConnection(new Uri(Url), ClientId, Tenant, CertificatePath, CertificatePassword, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } #endif else { if (!CurrentCredentials && creds == null) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), creds, Host, CurrentCredentials, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } WriteVerbose(string.Format("PnP PowerShell Cmdlets ({0}): Connected to {1}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), Url)); }
private void ConnectNativAAD(string clientId, string redirectUrl) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFolder = Path.Combine(appDataFolder, "SharePointPnP.PowerShell"); Directory.CreateDirectory(configFolder); // Ensure folder exists if (ClearTokenCache) { string configFile = Path.Combine(configFolder, "tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection( new Uri(Url), clientId, new Uri(redirectUrl), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AzureEnvironment); }
protected override void ProcessRecord() { PSCredential creds = null; if (Credentials != null) { creds = Credentials.Credential; } if (ParameterSetName == "Token") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), Realm, AppId, AppSecret, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseWebLogin) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateWebloginConnection(new Uri(Url), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseAdfs) { if (creds == null) { if ((creds = GetCredentials()) == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateAdfsConnection(new Uri(Url), creds, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #if !ONPREMISES else if (ParameterSetName == "NativeAAD") { if (ClearTokenCache) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFile = Path.Combine(appDataFolder, "SharePointPnP.PowerShell\\tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection(new Uri(Url), ClientId, new Uri(RedirectUri), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (ParameterSetName == "AppOnlyAAD") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADAppOnlyConnection(new Uri(Url), ClientId, Tenant, CertificatePath, CertificatePassword, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #endif else { if (!CurrentCredentials && creds == null) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), creds, Host, CurrentCredentials, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AuthenticationMode); } WriteVerbose($"PnP PowerShell Cmdlets ({System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}): Connected to {Url}"); if (CreateDrive && SPOnlineConnection.CurrentConnection.Context != null) { var provider = SessionState.Provider.GetAll().FirstOrDefault(p => p.Name.Equals("SPO", StringComparison.InvariantCultureIgnoreCase)); if (provider != null) { if (provider.Drives.Any(d => d.Name.Equals(DriveName, StringComparison.InvariantCultureIgnoreCase))) { SessionState.Drive.Remove(DriveName, true, "Global"); } var drive = new PSDriveInfo(DriveName, provider, string.Empty, Url, null); SessionState.Drive.New(drive, "Global"); } } }