public override void FromXml(SecurityElement securityElement)
{
if (securityElement == null)
{
throw new ArgumentNullException(nameof(securityElement));
}
if (!securityElement.Tag.Equals("IPermission"))
{
throw new ArgumentException(SR.net_not_ipermission, nameof(securityElement));
}
string className = securityElement.Attribute("class");
if (className == null)
{
throw new ArgumentException(SR.net_no_classname, nameof(securityElement));
}
if (className.IndexOf(GetType().FullName) < 0)
{
throw new ArgumentException(SR.net_no_typename, nameof(securityElement));
}
String str = securityElement.Attribute("Unrestricted");
if (str != null)
{
if (0 == string.Compare(str, "true", StringComparison.OrdinalIgnoreCase))
{
_access = SmtpAccess.ConnectToUnrestrictedPort;
_unrestricted = true;
return;
}
}
str = securityElement.Attribute("Access");
if (str != null)
{
if (0 == string.Compare(str, "Connect", StringComparison.OrdinalIgnoreCase))
{
_access = SmtpAccess.Connect;
}
else if (0 == string.Compare(str, "ConnectToUnrestrictedPort", StringComparison.OrdinalIgnoreCase))
{
_access = SmtpAccess.ConnectToUnrestrictedPort;
}
else if (0 == string.Compare(str, "None", StringComparison.OrdinalIgnoreCase))
{
_access = SmtpAccess.None;
}
else
{
throw new ArgumentException(SR.Format(SR.net_perm_invalid_val_in_element), "Access");
}
}
}