本文整理汇总了C#中System.Security.Permissions.KeyContainerPermissionAccessEntry.IsSubsetOf方法的典型用法代码示例。如果您正苦于以下问题:C# KeyContainerPermissionAccessEntry.IsSubsetOf方法的具体用法?C# KeyContainerPermissionAccessEntry.IsSubsetOf怎么用?C# KeyContainerPermissionAccessEntry.IsSubsetOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Security.Permissions.KeyContainerPermissionAccessEntry
的用法示例。
在下文中一共展示了KeyContainerPermissionAccessEntry.IsSubsetOf方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetApplicableFlags
private static KeyContainerPermissionFlags GetApplicableFlags (KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target) {
KeyContainerPermissionFlags flags = KeyContainerPermissionFlags.NoFlags;
bool applyDefaultFlags = true;
// If the entry exists in the target, return the flag of the target entry.
int index = target.AccessEntries.IndexOf(accessEntry);
if (index != -1) {
flags = ((KeyContainerPermissionAccessEntry)target.AccessEntries[index]).Flags;
return flags;
}
// Intersect the flags in all the target entries that apply to the current access entry,
foreach (KeyContainerPermissionAccessEntry targetAccessEntry in target.AccessEntries) {
if (accessEntry.IsSubsetOf(targetAccessEntry)) {
if (applyDefaultFlags == false) {
flags &= targetAccessEntry.Flags;
} else {
flags = targetAccessEntry.Flags;
applyDefaultFlags = false;
}
}
}
// If no target entry applies to the current entry, the default global flag applies.
if (applyDefaultFlags)
flags = target.Flags;
return flags;
}
示例2: GetApplicableFlags
private static KeyContainerPermissionFlags GetApplicableFlags(KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target)
{
KeyContainerPermissionFlags noFlags = KeyContainerPermissionFlags.NoFlags;
bool flag = true;
int index = target.AccessEntries.IndexOf(accessEntry);
if (index != -1)
{
return target.AccessEntries[index].Flags;
}
KeyContainerPermissionAccessEntryEnumerator enumerator = target.AccessEntries.GetEnumerator();
while (enumerator.MoveNext())
{
KeyContainerPermissionAccessEntry current = enumerator.Current;
if (accessEntry.IsSubsetOf(current))
{
if (!flag)
{
noFlags &= current.Flags;
}
else
{
noFlags = current.Flags;
flag = false;
}
}
}
if (flag)
{
noFlags = target.Flags;
}
return noFlags;
}