当前位置: 首页>>代码示例>>C#>>正文


C# EventWaitHandle.SetAccessControl方法代码示例

本文整理汇总了C#中System.Threading.EventWaitHandle.SetAccessControl方法的典型用法代码示例。如果您正苦于以下问题:C# EventWaitHandle.SetAccessControl方法的具体用法?C# EventWaitHandle.SetAccessControl怎么用?C# EventWaitHandle.SetAccessControl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Threading.EventWaitHandle的用法示例。


在下文中一共展示了EventWaitHandle.SetAccessControl方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PermissionsActuallyWork

		public void PermissionsActuallyWork ()
		{
			if (PlatformID.Win32NT != Environment.OSVersion.Platform) {
				Assert.Ignore ();
			}

			bool createdNew; EventWaitHandleSecurity security;
			string name = @"Local\MonoTestWaitHandle";

			using (EventWaitHandle handle = new EventWaitHandle (false, EventResetMode.ManualReset,
			                                                     name, out createdNew)) {
				Assert.IsFalse (handle.SafeWaitHandle.IsInvalid);
				Assert.IsTrue (createdNew);

				// Make sure our later error will be due to permissions and not some sharing bug.
				bool createdAnotherNew;
				using (EventWaitHandle anotherHandle = new EventWaitHandle (false, EventResetMode.ManualReset,
			                                                            	    name, out createdAnotherNew)) {
					Assert.IsFalse (anotherHandle.SafeWaitHandle.IsInvalid);
					Assert.IsFalse (createdAnotherNew);
				}

				// Let's make a deny all.
				security = handle.GetAccessControl ();

				foreach (EventWaitHandleAccessRule rule in security.GetAccessRules
				         (true, false, typeof (SecurityIdentifier))) {
					security.RemoveAccessRuleSpecific (rule);
				}

				Assert.AreEqual (0, security.GetAccessRules (true, false, typeof (SecurityIdentifier)).Count);
				handle.SetAccessControl (security);

				security = handle.GetAccessControl ();
				Assert.AreEqual (0, security.GetAccessRules (true, false, typeof (SecurityIdentifier)).Count);

				// MS.NET will throw on the first line below.
				// For Mono testing the latter verifies the rest until the EventWaitHandle bug is fixed.
				// Also, NUnit 2.4 appears to lacks Assert.Pass ().
				EventWaitHandle badHandle = new EventWaitHandle(false, EventResetMode.ManualReset, name);
				if (badHandle.SafeWaitHandle.IsInvalid)
					throw new UnauthorizedAccessException ();
			}
		}
开发者ID:nlhepler,项目名称:mono,代码行数:44,代码来源:EventWaitHandleSecurityTest.cs

示例2: Initialize

        public static void Initialize()
        {
            Program.AssertOffEventThread();
            Thread thread;
            string evname;
            EventWaitHandleSecurity evsec;
            EventWaitHandleAccessRule evrule;
            string user;

            xgs = Program.GetXGS();
            systray = Program.GetSystray();
            alertList = Program.GetAlertList();

            evname = xgs.GetAlertsEventName();
            user = Environment.UserDomainName + "\\" + Environment.UserName;
            evalerts = EventWaitHandle.OpenExisting(evname,
                EventWaitHandleRights.ReadPermissions | EventWaitHandleRights.ChangePermissions);
            evsec = evalerts.GetAccessControl();
            evrule = new EventWaitHandleAccessRule(user,
                EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify,
                AccessControlType.Deny);
            evsec.RemoveAccessRule(evrule);

            evrule = new EventWaitHandleAccessRule(user,
                EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify,
                AccessControlType.Allow);
            evsec.AddAccessRule(evrule);
            evalerts.SetAccessControl(evsec);

            evalerts = EventWaitHandle.OpenExisting(evname);

            thread = new Thread(alertUpdater);
            thread.Name = "XenClient Alert Thread";
            thread.IsBackground = true;

            thread.Start();
        }
开发者ID:rneilturner,项目名称:win-tools,代码行数:37,代码来源:XenAlert.cs

示例3: SetAccessControl

 public static void SetAccessControl(EventWaitHandle handle, EventWaitHandleSecurity eventSecurity)
 {
     handle.SetAccessControl(eventSecurity);
 }
开发者ID:noahfalk,项目名称:corefx,代码行数:4,代码来源:ThreadingAclExtensions.net46.cs

示例4: Initialize

        public static void Initialize(XenGuestAgentLib.XenGuestServices service)
        {
            Program.AssertOffEventThread();
            Thread thread;
            string evname;
            EventWaitHandleSecurity evsec;
            EventWaitHandleAccessRule evrule;
            string user;
            xgsc = service;

            evname = xgsc.RegisterVmsEvent();
            user = Environment.UserDomainName + "\\" + Environment.UserName;
            evvms = EventWaitHandle.OpenExisting(evname,
                EventWaitHandleRights.ReadPermissions | EventWaitHandleRights.ChangePermissions);
            evsec = evvms.GetAccessControl();
            evrule = new EventWaitHandleAccessRule(user,
                EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify,
                AccessControlType.Deny);
            evsec.RemoveAccessRule(evrule);

            evrule = new EventWaitHandleAccessRule(user,
                EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify,
                AccessControlType.Allow);
            evsec.AddAccessRule(evrule);
            evvms.SetAccessControl(evsec);

            evvms = EventWaitHandle.OpenExisting(evname);

            // Start the monitor thread
            thread = new Thread(CacheXgsMonitor);
            thread.Name = "XenClient Cache Thread";
            thread.IsBackground = true;

            thread.Start();
        }
开发者ID:rneilturner,项目名称:win-tools,代码行数:35,代码来源:XenVmsCache.cs


注:本文中的System.Threading.EventWaitHandle.SetAccessControl方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。