internal static PnPConnection CreateWithWeblogin(Uri url, string tenantAdminUrl, bool clearCookies, AzureEnvironment azureEnvironment = AzureEnvironment.Production) { if (Utilities.OperatingSystem.IsWindows()) { // Log in to a specific page on the tenant which is known to be performant var webLoginClientContext = BrowserHelper.GetWebLoginClientContext(url.ToString(), clearCookies, loginRequestUri: new Uri(url, "/_layouts/15/settings.aspx")); // Ensure the login process has been completed if (webLoginClientContext == null) { return(null); } var context = PnPClientContext.ConvertFrom(webLoginClientContext); if (context != null) { context.ApplicationName = Resources.ApplicationName; context.DisableReturnValueCache = true; var spoConnection = new PnPConnection(context, ConnectionType.O365, null, url.ToString(), tenantAdminUrl, PnPPSVersionTag, InitializationType.InteractiveLogin); spoConnection.ConnectionMethod = Model.ConnectionMethod.WebLogin; spoConnection.AzureEnvironment = azureEnvironment; return(spoConnection); } throw new Exception("Error establishing a connection, context is null"); } else { return(null); } }
internal static PnPConnection CreateWithWeblogin(Uri url, string tenantAdminUrl, bool clearCookies, AzureEnvironment azureEnvironment = AzureEnvironment.Production) { if (Utilities.OperatingSystem.IsWindows()) { // Log in to a specific page on the tenant which is known to be performant var webLoginClientContext = BrowserHelper.GetWebLoginClientContext(url.ToString(), clearCookies, loginRequestUri: new Uri(url, "/_layouts/15/settings.aspx")); // Ensure the login process has been completed if (webLoginClientContext == null) { return(null); } var context = PnPClientContext.ConvertFrom(webLoginClientContext); context.ExecutingWebRequest += (sender, e) => { e.WebRequestExecutor.WebRequest.UserAgent = $"NONISV|SharePointPnP|PnPPS/{((AssemblyFileVersionAttribute)Assembly.GetExecutingAssembly().GetCustomAttribute(typeof(AssemblyFileVersionAttribute))).Version} ({System.Environment.OSVersion.VersionString})"; }; if (context != null) { context.ApplicationName = Resources.ApplicationName; context.DisableReturnValueCache = true; var spoConnection = new PnPConnection(context, ConnectionType.O365, null, url.ToString(), tenantAdminUrl, PnPPSVersionTag, InitializationType.InteractiveLogin); spoConnection.ConnectionMethod = Model.ConnectionMethod.WebLogin; spoConnection.AzureEnvironment = azureEnvironment; return(spoConnection); } throw new Exception("Error establishing a connection, context is null"); } else { return(null); } }