/*
* public bool ConnectAll
* {
* get
* {
* return m_connect is bool ? (bool) m_connect : false;
* }
*
* set
* {
* if (m_connect != null)
* {
* throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "ConnectAll", value), "value");
* }
* m_connect = value;
* }
* }
*
* public bool AcceptAll
* {
* get
* {
* return m_accept is bool ? (bool) m_accept : false;
* }
*
* set
* {
* if (m_accept != null)
* {
* throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "AcceptAll", value), "value");
* }
* m_accept = value;
* }
* }
*/
public override IPermission CreatePermission()
{
WebPermission perm = null;
if (Unrestricted)
{
perm = new WebPermission(PermissionState.Unrestricted);
}
else
{
NetworkAccess access = (NetworkAccess)0;
if (m_connect is bool)
{
if ((bool)m_connect)
{
access |= NetworkAccess.Connect;
}
m_connect = null;
}
if (m_accept is bool)
{
if ((bool)m_accept)
{
access |= NetworkAccess.Accept;
}
m_accept = null;
}
perm = new WebPermission(access);
if (m_accept != null)
{
if (m_accept is DelayedRegex)
{
perm.AddAsPattern(NetworkAccess.Accept, (DelayedRegex)m_accept);
}
else
{
perm.AddPermission(NetworkAccess.Accept, (string)m_accept);
}
}
if (m_connect != null)
{
if (m_connect is DelayedRegex)
{
perm.AddAsPattern(NetworkAccess.Connect, (DelayedRegex)m_connect);
}
else
{
perm.AddPermission(NetworkAccess.Connect, (string)m_connect);
}
}
}
return(perm);
}