本文整理汇总了C#中SecurityElement.SearchForChildByTag方法的典型用法代码示例。如果您正苦于以下问题:C# SecurityElement.SearchForChildByTag方法的具体用法?C# SecurityElement.SearchForChildByTag怎么用?C# SecurityElement.SearchForChildByTag使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SecurityElement
的用法示例。
在下文中一共展示了SecurityElement.SearchForChildByTag方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FromXml
public void FromXml (SecurityElement element) {
if (element == null)
throw new ArgumentNullException("element");
if (String.Compare(element.Tag, "ApplicationTrust", StringComparison.Ordinal) != 0)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
#if FEATURE_CLICKONCE
m_appTrustedToRun = false;
string isAppTrustedToRun = element.Attribute("TrustedToRun");
if (isAppTrustedToRun != null && String.Compare(isAppTrustedToRun, "true", StringComparison.Ordinal) == 0) {
m_appTrustedToRun = true;
}
m_persist = false;
string persist = element.Attribute("Persist");
if (persist != null && String.Compare(persist, "true", StringComparison.Ordinal) == 0) {
m_persist = true;
}
m_appId = null;
string fullName = element.Attribute("FullName");
if (fullName != null && fullName.Length > 0) {
m_appId = new ApplicationIdentity(fullName);
}
#endif // FEATURE_CLICKONCE
m_psDefaultGrant = null;
m_grantSetSpecialFlags = 0;
SecurityElement elDefaultGrant = element.SearchForChildByTag("DefaultGrant");
if (elDefaultGrant != null) {
SecurityElement elDefaultGrantPS = elDefaultGrant.SearchForChildByTag("PolicyStatement");
if (elDefaultGrantPS != null) {
PolicyStatement ps = new PolicyStatement(null);
ps.FromXml(elDefaultGrantPS);
m_psDefaultGrant = ps;
m_grantSetSpecialFlags = SecurityManager.GetSpecialFlags(ps.PermissionSet, null);
}
}
List<StrongName> fullTrustAssemblies = new List<StrongName>();
SecurityElement elFullTrustAssemblies = element.SearchForChildByTag("FullTrustAssemblies");
if (elFullTrustAssemblies != null && elFullTrustAssemblies.InternalChildren != null) {
IEnumerator enumerator = elFullTrustAssemblies.Children.GetEnumerator();
while (enumerator.MoveNext()) {
StrongName fullTrustAssembly = new StrongName();
fullTrustAssembly.FromXml(enumerator.Current as SecurityElement);
fullTrustAssemblies.Add(fullTrustAssembly);
}
}
m_fullTrustAssemblies = fullTrustAssemblies.AsReadOnly();
#if FEATURE_CLICKONCE
m_elExtraInfo = element.SearchForChildByTag("ExtraInfo");
#endif // FEATURE_CLICKONCE
}
示例2: FromXml
public void FromXml (SecurityElement e)
{
if (e == null)
throw new ArgumentNullException ("e");
// MS doesn't throw an exception for this case
// if (e.Tag != "PolicyLevel")
// throw new ArgumentException (Locale.GetText ("Invalid XML"));
SecurityElement sc = e.SearchForChildByTag ("SecurityClasses");
if ((sc != null) && (sc.Children != null) && (sc.Children.Count > 0)) {
fullNames = new Hashtable (sc.Children.Count);
foreach (SecurityElement se in sc.Children) {
fullNames.Add (se.Attributes ["Name"], se.Attributes ["Description"]);
}
}
SecurityElement fta = e.SearchForChildByTag ("FullTrustAssemblies");
if ((fta != null) && (fta.Children != null) && (fta.Children.Count > 0)) {
full_trust_assemblies.Clear ();
foreach (SecurityElement se in fta.Children) {
if (se.Tag != "IMembershipCondition")
throw new ArgumentException (Locale.GetText ("Invalid XML"));
string className = se.Attribute ("class");
if (className.IndexOf ("StrongNameMembershipCondition") < 0)
throw new ArgumentException (Locale.GetText ("Invalid XML - must be StrongNameMembershipCondition"));
// we directly use StrongNameMembershipCondition
full_trust_assemblies.Add (new StrongNameMembershipCondition (se));
}
}
SecurityElement cg = e.SearchForChildByTag ("CodeGroup");
if ((cg != null) && (cg.Children != null) && (cg.Children.Count > 0)) {
root_code_group = CodeGroup.CreateFromXml (cg, this);
} else {
throw new ArgumentException (Locale.GetText ("Missing Root CodeGroup"));
}
SecurityElement nps = e.SearchForChildByTag ("NamedPermissionSets");
if ((nps != null) && (nps.Children != null) && (nps.Children.Count > 0)) {
named_permission_sets.Clear ();
foreach (SecurityElement se in nps.Children) {
NamedPermissionSet n = new NamedPermissionSet ();
n.Resolver = this;
n.FromXml (se);
named_permission_sets.Add (n);
}
}
}
示例3: FromXml
public void FromXml(SecurityElement e) {
if (e == null)
throw new ArgumentNullException("e");
Contract.EndContractBlock();
Hashtable classes;
lock (this) {
ArrayList fullTrustAssemblies = new ArrayList();
SecurityElement eClasses = e.SearchForChildByTag("SecurityClasses");
if (eClasses != null) {
classes = new Hashtable();
IEnumerator enumerator = eClasses.Children.GetEnumerator();
while (enumerator.MoveNext()) {
SecurityElement current = (SecurityElement)enumerator.Current;
if (current.Tag.Equals("SecurityClass")) {
string name = current.Attribute("Name");
string description = current.Attribute("Description");
if (name != null && description != null)
classes.Add(name, description);
}
}
}
else {
classes = null;
}
SecurityElement elFullTrust = e.SearchForChildByTag("FullTrustAssemblies");
if (elFullTrust != null && elFullTrust.InternalChildren != null) {
string className = typeof(System.Security.Policy.StrongNameMembershipCondition).AssemblyQualifiedName;
IEnumerator enumerator = elFullTrust.Children.GetEnumerator();
while (enumerator.MoveNext()) {
StrongNameMembershipCondition sn = new StrongNameMembershipCondition();
sn.FromXml((SecurityElement)enumerator.Current);
fullTrustAssemblies.Add(sn);
}
}
m_fullTrustAssemblies = fullTrustAssemblies;
ArrayList namedPermissionSets = new ArrayList();
SecurityElement elPermSets = e.SearchForChildByTag("NamedPermissionSets");
SecurityElement permSetElement = null;
// Here we just find the parent element for the named permission sets and
// store it so that we can lazily load them later.
if (elPermSets != null && elPermSets.InternalChildren != null) {
permSetElement = UnnormalizeClassDeep(elPermSets, classes);
// Call FindElement for each of the reserved sets (this removes their xml from
// permSetElement).
foreach (string builtInPermissionSet in s_reservedNamedPermissionSets) {
FindElement(permSetElement, builtInPermissionSet);
}
}
if (permSetElement == null)
permSetElement = new SecurityElement("NamedPermissionSets");
// Then we add in the immutable permission sets (this prevents any alterations
// to them in the XML file from impacting the runtime versions).
namedPermissionSets.Add(BuiltInPermissionSets.FullTrust);
namedPermissionSets.Add(BuiltInPermissionSets.Everything);
namedPermissionSets.Add(BuiltInPermissionSets.SkipVerification);
namedPermissionSets.Add(BuiltInPermissionSets.Execution);
namedPermissionSets.Add(BuiltInPermissionSets.Nothing);
namedPermissionSets.Add(BuiltInPermissionSets.Internet);
namedPermissionSets.Add(BuiltInPermissionSets.LocalIntranet);
foreach(PermissionSet ps in namedPermissionSets)
ps.IgnoreTypeLoadFailures = true;
m_namedPermissionSets = namedPermissionSets;
m_permSetElement = permSetElement;
// Parse the root code group.
SecurityElement elCodeGroup = e.SearchForChildByTag("CodeGroup");
if (elCodeGroup == null)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXMLElement", "CodeGroup", this.GetType().FullName));
CodeGroup rootCodeGroup = System.Security.Util.XMLUtil.CreateCodeGroup(UnnormalizeClassDeep(elCodeGroup, classes));
if (rootCodeGroup == null)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXMLElement", "CodeGroup", this.GetType().FullName));
rootCodeGroup.FromXml(elCodeGroup, this);
m_rootCodeGroup = rootCodeGroup;
}
}
示例4: FromXml
public void FromXml (SecurityElement et, PolicyLevel level)
{
if (et == null)
throw new ArgumentNullException ("et");
if (et.Tag != "PolicyStatement")
throw new ArgumentException (Locale.GetText ("Invalid tag."));
string attributes = et.Attribute ("Attributes");
if (attributes != null) {
attrs = (PolicyStatementAttribute) Enum.Parse (
typeof (PolicyStatementAttribute), attributes);
}
SecurityElement permissions = et.SearchForChildByTag ("PermissionSet");
PermissionSet.FromXml (permissions);
}
示例5: FromXml
public void FromXml (SecurityElement element)
{
if (element == null)
throw new ArgumentNullException ("element");
if (element.Tag != "ApplicationTrust")
throw new ArgumentException ("element");
string s = element.Attribute ("FullName");
if (s != null)
_appid = new ApplicationIdentity (s);
else
_appid = null;
_defaultPolicy = null;
SecurityElement defaultGrant = element.SearchForChildByTag ("DefaultGrant");
if (defaultGrant != null) {
for (int i=0; i < defaultGrant.Children.Count; i++) {
SecurityElement se = (defaultGrant.Children [i] as SecurityElement);
if (se.Tag == "PolicyStatement") {
DefaultGrantSet.FromXml (se, null);
break;
}
}
}
if (!Boolean.TryParse (element.Attribute ("TrustedToRun"), out _trustrun))
_trustrun = false;
if (!Boolean.TryParse (element.Attribute ("Persist"), out _persist))
_persist = false;
_xtranfo = null;
SecurityElement xtra = element.SearchForChildByTag ("ExtraInfo");
if (xtra != null) {
s = xtra.Attribute ("Data");
if (s != null) {
byte[] data = CryptoConvert.FromHex (s);
using (MemoryStream ms = new MemoryStream (data)) {
BinaryFormatter bf = new BinaryFormatter ();
_xtranfo = bf.Deserialize (ms);
}
}
}
}
示例6: FromXml
public void FromXml(SecurityElement et, PolicyLevel level)
{
SecurityElement child;
String className;
Type type;
ArrayList list;
CodeGroup group;
if(et == null)
{
throw new ArgumentNullException("et");
}
if(et.Tag != "CodeGroup")
{
throw new ArgumentException
(_("Security_CodeGroupName"));
}
if(et.Attribute("version") != "1")
{
throw new ArgumentException
(_("Security_PolicyVersion"));
}
name = et.Attribute("Name");
description = et.Attribute("Description");
// Load the membership condition information for the group.
child = et.SearchForChildByTag("IMembershipCondition");
if(child != null)
{
className = child.Attribute("class");
if(className == null)
{
throw new ArgumentException
(_("Invalid_PermissionXml"));
}
type = Type.GetType(className);
if(type == null && className.IndexOf('.') == -1)
{
// May not have been fully-qualified.
type = Type.GetType
("System.Security.Policy." + className);
}
if(!typeof(IMembershipCondition).IsAssignableFrom(type))
{
throw new ArgumentException
(_("Invalid_PermissionXml"));
}
membershipCondition =
(Activator.CreateInstance(type)
as IMembershipCondition);
if(membershipCondition != null)
{
membershipCondition.FromXml(child, level);
}
}
else
{
throw new ArgumentException
(_("Arg_InvalidMembershipCondition"));
}
// Load the children within this code group.
list = new ArrayList();
foreach(SecurityElement elem in et.Children)
{
if(elem.Tag != "CodeGroup")
{
continue;
}
className = child.Attribute("class");
if(className == null)
{
throw new ArgumentException
(_("Invalid_PermissionXml"));
}
type = Type.GetType(className);
if(type == null && className.IndexOf('.') == -1)
{
// May not have been fully-qualified.
type = Type.GetType
("System.Security.Policy." + className);
}
if(!typeof(CodeGroup).IsAssignableFrom(type))
{
throw new ArgumentException
(_("Invalid_PermissionXml"));
}
group = (Activator.CreateInstance(type) as CodeGroup);
if(group != null)
{
group.FromXml(elem, level);
list.Add(group);
}
}
children = list;
// Parse subclass-specific data from the element.
ParseXml(et, level);
}
示例7: FromXml
public void FromXml (SecurityElement e, PolicyLevel level)
{
if (null == e)
throw new ArgumentNullException("e");
PermissionSet ps = null;
string psetname = e.Attribute ("PermissionSetName");
if ((psetname != null) && (level != null)) {
ps = level.GetNamedPermissionSet (psetname);
}
else {
SecurityElement pset = e.SearchForChildByTag ("PermissionSet");
if (pset != null) {
Type classType = Type.GetType (pset.Attribute ("class"));
ps = (PermissionSet) Activator.CreateInstance (classType, true);
ps.FromXml (pset);
}
else {
ps = new PermissionSet (new PermissionSet (PermissionState.None));
}
}
m_policy = new PolicyStatement (ps);
m_children.Clear ();
if ((e.Children != null) && (e.Children.Count > 0)) {
foreach (SecurityElement se in e.Children) {
if (se.Tag == "CodeGroup") {
this.AddChild (CodeGroup.CreateFromXml (se, level));
}
}
}
m_membershipCondition = null;
SecurityElement mc = e.SearchForChildByTag ("IMembershipCondition");
if (mc != null) {
string className = mc.Attribute ("class");
Type classType = Type.GetType (className);
if (classType == null)
classType = Type.GetType ("System.Security.Policy." + className);
m_membershipCondition = (IMembershipCondition) Activator.CreateInstance (classType, true);
m_membershipCondition.FromXml (mc, level);
}
m_name = e.Attribute("Name");
m_description = e.Attribute("Description");
// seems like we might need this to Resolve() in subclasses
//m_level = level;
ParseXml (e, level);
}
示例8: FromXml
public void FromXml (SecurityElement element) {
if (element == null)
throw new ArgumentNullException("element");
if (String.Compare(element.Tag, "ApplicationTrust", StringComparison.Ordinal) != 0)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
m_psDefaultGrant = null;
m_fullTrustAssemblies = null;
m_appTrustedToRun = false;
string isAppTrustedToRun = element.Attribute("TrustedToRun");
if (isAppTrustedToRun != null && String.Compare(isAppTrustedToRun, "true", StringComparison.Ordinal) == 0)
m_appTrustedToRun = true;
string persist = element.Attribute("Persist");
if (persist != null && String.Compare(persist, "true", StringComparison.Ordinal) == 0)
m_persist = true;
string fullName = element.Attribute("FullName");
if (fullName != null && fullName.Length > 0)
m_appId = new ApplicationIdentity(fullName);
SecurityElement elDefaultGrant = element.SearchForChildByTag("DefaultGrant");
if (elDefaultGrant != null) {
SecurityElement elDefaultGrantPS = elDefaultGrant.SearchForChildByTag("PolicyStatement");
if (elDefaultGrantPS != null) {
PolicyStatement ps = new PolicyStatement(null);
ps.FromXml(elDefaultGrantPS);
m_psDefaultGrant = ps;
}
}
SecurityElement elFullTrustAssemblies = element.SearchForChildByTag("FullTrustAssemblies");
if (elFullTrustAssemblies != null && elFullTrustAssemblies.InternalChildren != null) {
m_fullTrustAssemblies = new StrongName[elFullTrustAssemblies.Children.Count];
IEnumerator enumerator = elFullTrustAssemblies.Children.GetEnumerator();
int index = 0;
while (enumerator.MoveNext()) {
m_fullTrustAssemblies[index] = new StrongName();
m_fullTrustAssemblies[index].FromXml(enumerator.Current as SecurityElement);
index++;
}
}
m_elExtraInfo = element.SearchForChildByTag("ExtraInfo");
}
示例9: FromXml
// Implement the ISecurityPolicyEncodable interface.
public void FromXml(SecurityElement et, PolicyLevel level)
{
if(et == null)
{
throw new ArgumentNullException("et");
}
if(et.Tag != "PolicyStatement")
{
throw new ArgumentException
(_("Security_PolicyName"));
}
if(et.Attribute("version") != "1")
{
throw new ArgumentException
(_("Security_PolicyVersion"));
}
String value = et.Attribute("Attributes");
if(value != null)
{
attributes = (PolicyStatementAttribute)
Enum.Parse(typeof(PolicyStatementAttribute), value);
}
else
{
attributes = PolicyStatementAttribute.Nothing;
}
permSet = null;
if(level != null)
{
String name = et.Attribute("PermissionSetName");
if(name != null)
{
permSet = level.GetNamedPermissionSet(value);
if(permSet == null)
{
permSet = new PermissionSet(PermissionState.None);
}
}
}
if(permSet == null)
{
SecurityElement child;
child = et.SearchForChildByTag("PermissionSet");
if(child != null)
{
String permClass;
permClass = child.Attribute("class");
if(permClass != null &&
permClass.IndexOf("NamedPermissionSet") != -1)
{
permSet = new NamedPermissionSet
("DefaultName", PermissionState.None);
}
else
{
permSet = new PermissionSet(PermissionState.None);
}
try
{
permSet.FromXml(child);
}
catch(Exception)
{
// Ignore errors during set loading.
}
}
}
if(permSet == null)
{
permSet = new PermissionSet(PermissionState.None);
}
}
示例10: GetNamedParam
private byte[] GetNamedParam(SecurityElement se, string param) {
SecurityElement sep = se.SearchForChildByTag(param);
if (sep == null)
return null;
return Convert.FromBase64String(sep.Text);
}