private SP.ClientContext GetClientContext(string webUrl) { SP.ClientContext ctx = new SP.ClientContext(webUrl); if (txtUser.Text != "") { string domain = ""; string user = ""; if (txtUser.Text.Replace('/', '\\').Contains('\\')) { string[] tmp = txtUser.Text.Split('\\'); domain = tmp[0]; user = tmp[1]; } else { user = txtUser.Text; } string password = txtPwd.Text; if (chkLoginOnline.Checked) { System.Security.SecureString secpwd = new System.Security.SecureString(); for (int i = 0; i < password.Length; i++) { secpwd.AppendChar(password[i]); } //ClientAuthenticationMode = ClientAuthenticationMode.FormsAuthentication; //FormsAuthenticationLoginInfo creds = new FormsAuthenticationLoginInfo(User, Password); SharePointOnlineCredentials creds = new SharePointOnlineCredentials(user, secpwd); ctx.Credentials = creds; } else { ctx.Credentials = new System.Net.NetworkCredential(user, txtPwd.Text, domain); } } if (string.IsNullOrEmpty(ProxyUrl) == false) { ctx.ExecutingWebRequest += (sen, args) => { System.Net.WebProxy myProxy = new System.Net.WebProxy(ProxyUrl); string domain = ""; string user = ""; if (ProxyUser.Replace('/', '\\').Contains('\\')) { string[] tmp = ProxyUser.Split('\\'); domain = tmp[0]; user = tmp[1]; } // myProxy.Credentials = new System.Net.NetworkCredential(ProxyUser, ProxyPwd, domain); myProxy.Credentials = System.Net.CredentialCache.DefaultCredentials; myProxy.UseDefaultCredentials = true; args.WebRequestExecutor.WebRequest.Proxy = myProxy; }; } return(ctx); }
/// <summary> /// Sends all the messages /// </summary> /// <param name="message"></param> /// <returns> /// <value>true</value> /// if succeeded /// </returns> private bool SendFast(string message) { _conversationActiveFlag.Wait(_terminateProcessor.Token); try { var http = (HttpWebRequest)WebRequest.Create(Url); http.KeepAlive = false; http.Method = Method; http.ContentType = ContentType; http.Accept = Accept; http.Timeout = ConnectTimeout; http.Proxy = String.IsNullOrWhiteSpace(ProxyUrl) ? NoProxy : new WebProxy(new Uri(ProxyUrl)) { UseDefaultCredentials = String.IsNullOrWhiteSpace(ProxyUser) }; if (!String.IsNullOrWhiteSpace(ProxyUser)) { var cred = ProxyUser.Split('\\'); http.Proxy.Credentials = cred.Length == 1 ? new NetworkCredential { UserName = ProxyUser, Password = ProxyPassword } : new NetworkCredential { Domain = cred[0], UserName = cred[1], Password = ProxyPassword }; } if (IgnoreSslErrors) { http.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true; } if (!string.IsNullOrWhiteSpace(Authorization)) { http.Headers.Add("Authorization", Authorization); } var bytes = Encoding.ASCII.GetBytes(message); http.ContentLength = bytes.Length; using (var os = http.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); //Push it out there } using (var response = http.GetResponseAsync()) { using (var sr = new StreamReader(response.Result.GetResponseStream() ?? throw new InvalidOperationException())) { //TODO What should we check for> // ReSharper disable once UnusedVariable var content = sr.ReadToEnd(); } return(!response.IsFaulted); } } catch (WebException wex) { InternalLogger.Warn(wex, "Failed to communicate over HTTP"); return(false); } catch (Exception ex) { InternalLogger.Warn(ex, "Unknown exception occured"); return(false); } finally { _conversationActiveFlag.Release(); } }