當前位置: 首頁>>代碼示例>>C#>>正文


C# EventWaitHandle.GetAccessControl方法代碼示例

本文整理匯總了C#中System.Threading.EventWaitHandle.GetAccessControl方法的典型用法代碼示例。如果您正苦於以下問題:C# EventWaitHandle.GetAccessControl方法的具體用法?C# EventWaitHandle.GetAccessControl怎麽用?C# EventWaitHandle.GetAccessControl使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Threading.EventWaitHandle的用法示例。


在下文中一共展示了EventWaitHandle.GetAccessControl方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: Initialize

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

            evname = xgsc.RegisterAlertsEvent();
            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:jean-edouard,項目名稱:win-tools,代碼行數:35,代碼來源:XenAlert.cs

示例2: 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

示例3: GetAccessControl

 public static EventWaitHandleSecurity GetAccessControl(EventWaitHandle handle)
 {
     return handle.GetAccessControl();
 }
開發者ID:noahfalk,項目名稱:corefx,代碼行數:4,代碼來源:ThreadingAclExtensions.net46.cs

示例4: Initialize

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

            xgs = Program.GetXGS();

            evname = xgs.GetVmsEventName();
            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:jean-edouard,項目名稱:win-tools,代碼行數:36,代碼來源:XenVmsCache.cs


注:本文中的System.Threading.EventWaitHandle.GetAccessControl方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。