public static void Session(SPDeployOptions options, Action <ClientContext> Code) { sp_deploy_settings.EchoCurrentParams(options); if (!String.IsNullOrEmpty(options.ADFSUrl)) { OfficeDevPnP.Core.AuthenticationManager am = new OfficeDevPnP.Core.AuthenticationManager(); using (var clientContext = am.GetADFSUserNameMixedAuthenticatedContext(options.url, options.login, options.password, options.domain, options.ADFSUrl, options.relyingParty, 600)) { //var StartedDate = DateTime.Now; clientContext.ExecutingWebRequest += delegate(object oSender, WebRequestEventArgs webRequestEventArgs) { foreach (Cookie Cookie in webRequestEventArgs.WebRequestExecutor.WebRequest.CookieContainer.GetCookies(new Uri(options.url))) { if (Cookie.Name == "FedAuth") { var Expires = Cookie.Expires; var CurrentTime = DateTime.Now; var DateDiff = (Expires - CurrentTime).TotalMinutes; if (DateDiff < 3) { am.RefreshADFSUserNameMixedAuthenticatedContext(options.url, options.login, options.password, options.domain, options.ADFSUrl, options.relyingParty); } } } }; Code(clientContext); } } else { //using (var clientContext = new ClientContext(options.url)) //{ var clientContext = new ClientContext(options.url); if (options.Credentials != null) { clientContext.Credentials = options.Credentials; } if ((!String.IsNullOrEmpty(options.ClientId)) && (!String.IsNullOrEmpty(options.ClientSecret))) { TokenHelper.ClientId = options.ClientId; TokenHelper.ClientSecret = options.ClientSecret; var targetWeb = new Uri(options.url); string targetRealm = TokenHelper.GetRealmFromTargetUrl(targetWeb); var responseToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, targetWeb.Authority, targetRealm); clientContext = TokenHelper.GetClientContextWithAccessToken(targetWeb.ToString(), responseToken.AccessToken); } Code(clientContext); clientContext.Dispose(); //} } }