System.Net.WebPermission.AddAsPattern C# (CSharp) Method

AddAsPattern() private method

private AddAsPattern ( NetworkAccess access, DelayedRegex uriRegexPattern ) : void
access NetworkAccess
uriRegexPattern DelayedRegex
return void
        internal void AddAsPattern(NetworkAccess access, DelayedRegex uriRegexPattern)
        {
            ArrayList lists = new ArrayList();
            if ((access & NetworkAccess.Connect) != 0 && !m_UnrestrictedConnect)
                lists.Add(m_connectList);
            if ((access & NetworkAccess.Accept) != 0 && !m_UnrestrictedAccept)
                lists.Add(m_acceptList);

            foreach (ArrayList list in lists)
            {
                // avoid duplicated regexes in the list
                bool found = false;
                foreach (object obj in list) {
                    if ((obj is DelayedRegex) && (string.Compare(uriRegexPattern.ToString(), obj.ToString(), StringComparison.OrdinalIgnoreCase ) == 0)) {
                        found = true;
                        break;
                    }
                }

                if (!found) {
                    list.Add(uriRegexPattern);
                }
            }
        }

Usage Example

示例#1
0
/*
 *      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);
        }
All Usage Examples Of System.Net.WebPermission::AddAsPattern