本文整理汇总了C#中System.Threading.Semaphore.GetAccessControl方法的典型用法代码示例。如果您正苦于以下问题:C# Semaphore.GetAccessControl方法的具体用法?C# Semaphore.GetAccessControl怎么用?C# Semaphore.GetAccessControl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Threading.Semaphore
的用法示例。
在下文中一共展示了Semaphore.GetAccessControl方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PermissionsActuallyWork
public void PermissionsActuallyWork ()
{
if (PlatformID.Win32NT != Environment.OSVersion.Platform) {
Assert.Ignore ();
}
bool createdNew; SemaphoreSecurity security;
string name = @"Local\MonoTestSemaphore";
using (Semaphore semaphore = new Semaphore (1, 1, name, out createdNew)) {
Assert.IsFalse (semaphore.SafeWaitHandle.IsInvalid);
Assert.IsTrue (createdNew);
// Make sure our later error will be due to permissions and not some sharing bug.
bool createdAnotherNew;
using (Semaphore anotherSemaphore = new Semaphore (1, 1, name, out createdAnotherNew)) {
Assert.IsFalse (anotherSemaphore.SafeWaitHandle.IsInvalid);
Assert.IsFalse (createdAnotherNew);
}
// Let's make a deny all.
security = semaphore.GetAccessControl ();
foreach (SemaphoreAccessRule rule in security.GetAccessRules
(true, false, typeof (SecurityIdentifier))) {
security.RemoveAccessRuleSpecific (rule);
}
Assert.AreEqual (0, security.GetAccessRules (true, false, typeof (SecurityIdentifier)).Count);
semaphore.SetAccessControl (security);
security = semaphore.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 Semaphore bug is fixed.
// Also, NUnit 2.4 appears to lacks Assert.Pass ().
Semaphore badSemaphore = new Semaphore (1, 1, name);
if (badSemaphore.SafeWaitHandle.IsInvalid)
throw new UnauthorizedAccessException ();
}
}
示例2: AccessControl_Unnamed
[Category ("NotWorking")] // not implemented in Mono
public void AccessControl_Unnamed ()
{
Semaphore s = new Semaphore (0, 1, null);
SemaphoreSecurity ss = s.GetAccessControl ();
Assert.IsNotNull (ss, "GetAccessControl");
s.SetAccessControl (ss);
}
示例3: GetAccessControl
public static SemaphoreSecurity GetAccessControl(Semaphore semaphore)
{
return semaphore.GetAccessControl();
}