本文整理汇总了C#中System.Security.Util.TokenBasedSet.OnDeserializedInternal方法的典型用法代码示例。如果您正苦于以下问题:C# TokenBasedSet.OnDeserializedInternal方法的具体用法?C# TokenBasedSet.OnDeserializedInternal怎么用?C# TokenBasedSet.OnDeserializedInternal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Security.Util.TokenBasedSet
的用法示例。
在下文中一共展示了TokenBasedSet.OnDeserializedInternal方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SpecialUnion
internal TokenBasedSet SpecialUnion(TokenBasedSet other)
{
int maxUsedIndex;
this.OnDeserializedInternal();
TokenBasedSet set = new TokenBasedSet();
if (other != null)
{
other.OnDeserializedInternal();
maxUsedIndex = (this.GetMaxUsedIndex() > other.GetMaxUsedIndex()) ? this.GetMaxUsedIndex() : other.GetMaxUsedIndex();
}
else
{
maxUsedIndex = this.GetMaxUsedIndex();
}
for (int i = 0; i <= maxUsedIndex; i++)
{
object item = this.GetItem(i);
IPermission perm = item as IPermission;
ISecurityElementFactory factory = item as ISecurityElementFactory;
object obj3 = (other != null) ? other.GetItem(i) : null;
IPermission permission2 = obj3 as IPermission;
ISecurityElementFactory factory2 = obj3 as ISecurityElementFactory;
if ((item != null) || (obj3 != null))
{
if (item == null)
{
if (factory2 != null)
{
permission2 = PermissionSet.CreatePerm(factory2, false);
}
PermissionToken token = PermissionToken.GetToken(permission2);
if (token == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
set.SetItem(token.m_index, permission2);
}
else if (obj3 == null)
{
if (factory != null)
{
perm = PermissionSet.CreatePerm(factory, false);
}
PermissionToken token2 = PermissionToken.GetToken(perm);
if (token2 == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
set.SetItem(token2.m_index, perm);
}
}
}
return set;
}
示例2: SpecialUnion
// Used to merge two distinct TokenBasedSets (used currently only in PermissionSet Deserialization)
internal TokenBasedSet SpecialUnion(TokenBasedSet other)
{
// This gets called from PermissionSet.OnDeserialized and it's possible that the TokenBasedSets have
// not been subjected to VTS callbacks yet
OnDeserializedInternal();
TokenBasedSet unionSet = new TokenBasedSet();
int maxMax;
if (other != null)
{
other.OnDeserializedInternal();
maxMax = this.GetMaxUsedIndex() > other.GetMaxUsedIndex() ? this.GetMaxUsedIndex() : other.GetMaxUsedIndex();
}
else
maxMax = this.GetMaxUsedIndex();
for (int i = 0; i <= maxMax; ++i)
{
Object thisObj = this.GetItem( i );
IPermission thisPerm = thisObj as IPermission;
#if FEATURE_CAS_POLICY
ISecurityElementFactory thisElem = thisObj as ISecurityElementFactory;
#endif // FEATURE_CAS_POLICY
Object otherObj = (other != null)?other.GetItem( i ):null;
IPermission otherPerm = otherObj as IPermission;
#if FEATURE_CAS_POLICY
ISecurityElementFactory otherElem = otherObj as ISecurityElementFactory;
#endif // FEATURE_CAS_POLICY
if (thisObj == null && otherObj == null)
continue;
if (thisObj == null)
{
#if FEATURE_CAS_POLICY
if (otherElem != null)
{
otherPerm = PermissionSet.CreatePerm(otherElem, false);
}
#endif // FEATURE_CAS_POLICY
PermissionToken token = PermissionToken.GetToken(otherPerm);
if (token == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
unionSet.SetItem(token.m_index, otherPerm);
}
else if (otherObj == null)
{
#if FEATURE_CAS_POLICY
if (thisElem != null)
{
thisPerm = PermissionSet.CreatePerm(thisElem, false);
}
#endif // FEATURE_CAS_POLICY
PermissionToken token = PermissionToken.GetToken(thisPerm);
if (token == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
unionSet.SetItem( token.m_index, thisPerm);
}
else
{
Contract.Assert( (thisObj == null || otherObj == null), "Permission cannot be in both TokenBasedSets" );
}
}
return unionSet;
}
示例3: SpecialUnion
// Used to merge two distinct TokenBasedSets (used currently only in PermissionSet Deserialization)
internal TokenBasedSet SpecialUnion(TokenBasedSet other, ref bool canUnrestrictedOverride)
{
// This gets called from PermissionSet.OnDeserialized and it's possible that the TokenBasedSets have
// not been subjected to VTS callbacks yet
OnDeserializedInternal();
TokenBasedSet unionSet = new TokenBasedSet();
int maxMax;
if (other != null)
{
other.OnDeserializedInternal();
maxMax = this.GetMaxUsedIndex() > other.GetMaxUsedIndex() ? this.GetMaxUsedIndex() : other.GetMaxUsedIndex();
}
else
maxMax = this.GetMaxUsedIndex();
for (int i = 0; i <= maxMax; ++i)
{
Object thisObj = this.GetItem( i );
IPermission thisPerm = thisObj as IPermission;
ISecurityElementFactory thisElem = thisObj as ISecurityElementFactory;
Object otherObj = (other != null)?other.GetItem( i ):null;
IPermission otherPerm = otherObj as IPermission;
ISecurityElementFactory otherElem = otherObj as ISecurityElementFactory;
if (thisObj == null && otherObj == null)
continue;
if (thisObj == null)
{
if (otherElem != null)
{
otherPerm = PermissionSet.CreatePerm(otherElem, false);
}
PermissionToken token = PermissionToken.GetToken(otherPerm);
if (token == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
unionSet.SetItem(token.m_index, otherPerm);
if (!CodeAccessPermission.CanUnrestrictedOverride(otherPerm))
canUnrestrictedOverride = false;
}
else if (otherObj == null)
{
if (thisElem != null)
{
thisPerm = PermissionSet.CreatePerm(thisElem, false);
}
PermissionToken token = PermissionToken.GetToken(thisPerm);
if (token == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState"));
}
unionSet.SetItem( token.m_index, thisPerm);
if (!CodeAccessPermission.CanUnrestrictedOverride(thisPerm))
canUnrestrictedOverride = false;
}
else
{
BCLDebug.Assert( (thisObj == null || otherObj == null), "Permission cannot be in both TokenBasedSets" );
}
}
return unionSet;
}