internal WebPermission(NetworkAccess access)
 {
     this.m_connectList = new ArrayList();
     this.m_acceptList = new ArrayList();
     this.m_UnrestrictedConnect = (access & NetworkAccess.Connect) != 0;
     this.m_UnrestrictedAccept = (access & NetworkAccess.Accept) != 0;
 }
 internal void AddAsPattern(NetworkAccess access, DelayedRegex uriRegexPattern)
 {
     ArrayList list = new ArrayList();
     if (((access & NetworkAccess.Connect) != 0) && !this.m_UnrestrictedConnect)
     {
         list.Add(this.m_connectList);
     }
     if (((access & NetworkAccess.Accept) != 0) && !this.m_UnrestrictedAccept)
     {
         list.Add(this.m_acceptList);
     }
     foreach (ArrayList list2 in list)
     {
         bool flag = false;
         foreach (object obj2 in list2)
         {
             if ((obj2 is DelayedRegex) && (string.Compare(uriRegexPattern.ToString(), obj2.ToString(), StringComparison.OrdinalIgnoreCase) == 0))
             {
                 flag = true;
                 break;
             }
         }
         if (!flag)
         {
             list2.Add(uriRegexPattern);
         }
     }
 }
 public void AddPermission(NetworkAccess access, TransportType transport, string hostName, int portNumber)
 {
     if (hostName == null)
     {
         throw new ArgumentNullException("hostName");
     }
     EndpointPermission endPoint = new EndpointPermission(hostName, portNumber, transport);
     this.AddPermission(access, endPoint);
 }
	// Constructor.
	internal EndpointPermission(NetworkAccess access,
								TransportType transport,
								String hostName,
								int portNumber)
			{
				this.access = access;
				this.transport = transport;
				this.hostName = hostName;
				this.portNumber = portNumber;
			}
	public SocketPermission(NetworkAccess access, TransportType transport,
							String hostName, int portNumber)
			{
				if(hostName == null)
				{
					throw new ArgumentNullException("hostName");
				}
				this.state = PermissionState.None;
				this.permissions = new ArrayList();
				this.permissions.Add
					(new EndpointPermission(access, transport,
											  hostName, portNumber));
			}
		// Methods
		
		public void AddPermission (NetworkAccess access, TransportType transport,
					   string hostName, int portNumber)
		{
			if (m_noRestriction)
				return;
				
			EndpointPermission permission = new EndpointPermission (hostName, portNumber, transport);

			if (access == NetworkAccess.Accept)
				m_acceptList.Add (permission);
			else
				m_connectList.Add (permission);
		}		
 internal void AddPermission(NetworkAccess access, EndpointPermission endPoint)
 {
     if (!this.m_noRestriction)
     {
         if ((access & NetworkAccess.Connect) != 0)
         {
             this.m_connectList.Add(endPoint);
         }
         if ((access & NetworkAccess.Accept) != 0)
         {
             this.m_acceptList.Add(endPoint);
         }
     }
 }
Beispiel #8
0
 public ConnectivityChangedEventArgs(NetworkAccess access, IEnumerable <ConnectionProfile> connectionProfiles)
 {
     NetworkAccess      = access;
     ConnectionProfiles = connectionProfiles;
 }
	internal void AddPermission(NetworkAccess access, Object uri)
			{
				if(state == PermissionState.Unrestricted)
				{
					// No need to add permissions to an unrestricted set.
					return;
				}
				if(uri == null)
				{
					throw new ArgumentNullException("uri");
				}
				if(access == NetworkAccess.Connect)
				{
					connectList.Add(uri);
				}
				else if(access == NetworkAccess.Accept)
				{
					acceptList.Add(uri);
				}
			}
		public SocketPermission (NetworkAccess access, TransportType transport, 
					 string hostName, int portNumber) : base () 
		{
			m_noRestriction = false;
			AddPermission (access, transport, hostName, portNumber);
		}	
Beispiel #11
0
 /// <summary>Initializes a new instance of the <see cref="T:System.Net.WebPermission" /> class with the specified access rights for the specified URI.</summary>
 /// <param name="access">A NetworkAccess value that indicates what kind of access to grant to the specified URI. <see cref="F:System.Net.NetworkAccess.Accept" /> indicates that the application is allowed to accept connections from the Internet on a local resource. <see cref="F:System.Net.NetworkAccess.Connect" /> indicates that the application is allowed to connect to specific Internet resources. </param>
 /// <param name="uriString">A URI string to which access rights are granted. </param>
 /// <exception cref="T:System.ArgumentNullException">
 ///   <paramref name="uriString" /> is null. </exception>
 public WebPermission(NetworkAccess access, string uriString)
 {
     this.AddPermission(access, uriString);
 }
Beispiel #12
0
        /// <summary>Adds the specified URI with the specified access rights to the current <see cref="T:System.Net.WebPermission" />.</summary>
        /// <param name="access">A NetworkAccess that specifies the access rights that are granted to the URI. </param>
        /// <param name="uriRegex">A regular expression that describes the set of URIs to which access rights are granted. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="uriRegex" /> parameter is null. </exception>
        public void AddPermission(NetworkAccess access, Regex uriRegex)
        {
            WebPermissionInfo info = new WebPermissionInfo(uriRegex);

            AddPermission(access, info);
        }
        public WebPermission (NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex) {

          return default(WebPermission);
        }
 public void AddPermission(NetworkAccess access, string !uriString)
 {
     Contract.Requires(uriString != null);
 }
 public void AddPermission(NetworkAccess access, Regex uriRegex)
 {
     if (uriRegex == null)
     {
         throw new ArgumentNullException("uriRegex");
     }
     if (!this.m_noRestriction)
     {
         if (uriRegex.ToString() == ".*")
         {
             if (!this.m_UnrestrictedConnect && ((access & NetworkAccess.Connect) != 0))
             {
                 this.m_UnrestrictedConnect = true;
                 this.m_connectList.Clear();
             }
             if (!this.m_UnrestrictedAccept && ((access & NetworkAccess.Accept) != 0))
             {
                 this.m_UnrestrictedAccept = true;
                 this.m_acceptList.Clear();
             }
         }
         else
         {
             this.AddAsPattern(access, new DelayedRegex(uriRegex));
         }
     }
 }
Beispiel #16
0
 protected virtual void OnStateChanged(NetworkAccess networkAccess)
 {
     StateChange?.Invoke(this, networkAccess);
 }
 public void AddPermission(NetworkAccess access, System.Text.RegularExpressions.Regex !uriRegex)
 {
     Contract.Requires(uriRegex != null);
 }
 public SocketPermission(NetworkAccess access, TransportType transport, string hostName, int portNumber)
 {
     this.initialize();
     this.m_noRestriction = false;
     this.AddPermission(access, transport, hostName, portNumber);
 }
Beispiel #19
0
        /// <summary>Adds the specified URI with the specified access rights to the current <see cref="T:System.Net.WebPermission" />.</summary>
        /// <param name="access">A NetworkAccess that specifies the access rights that are granted to the URI. </param>
        /// <param name="uriRegex">A regular expression that describes the set of URIs to which access rights are granted. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="uriRegex" /> parameter is null. </exception>
        public void AddPermission(NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex)
        {
            WebPermissionInfo info = new WebPermissionInfo(uriRegex);

            this.AddPermission(access, info);
        }
Beispiel #20
0
        /// <summary>Adds the specified URI string with the specified access rights to the current <see cref="T:System.Net.WebPermission" />.</summary>
        /// <param name="access">A <see cref="T:System.Net.NetworkAccess" /> that specifies the access rights that are granted to the URI. </param>
        /// <param name="uriString">A string that describes the URI to which access rights are granted. </param>
        /// <exception cref="T:System.ArgumentNullException">
        ///   <paramref name="uriString" /> is null. </exception>
        public void AddPermission(NetworkAccess access, string uriString)
        {
            WebPermissionInfo info = new WebPermissionInfo(WebPermissionInfoType.InfoString, uriString);

            this.AddPermission(access, info);
        }
	public WebPermission(NetworkAccess access, String uriString) : this()
			{
				AddPermission(access, uriString);
			}
 public WebPermission(NetworkAccess access, string uriString)
 {
     return(default(WebPermission));
 }
        public SocketPermission (NetworkAccess access, TransportType transport, string hostName, int portNumber) {

          return default(SocketPermission);
        }
 public WebPermission(NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex)
 {
     return(default(WebPermission));
 }
Beispiel #25
0
 static void OnConnectivityChanged(NetworkAccess access, IEnumerable <ConnectionProfile> profiles)
 => OnConnectivityChanged(new ConnectivityChangedEventArgs(access, profiles));
Beispiel #26
0
 public void AddPermission(NetworkAccess access, TransportType transport, string hostName, int portNumber)
 {
 }
        public WebPermission (NetworkAccess access, string uriString) {

          return default(WebPermission);
        }
	// Add end-point information that is parsed from an XML element list.
	private void AddFromXml(SecurityElement element, NetworkAccess access)
			{
				ArrayList children = element.Children;
				String value;
				TransportType transport;
				int portNumber;
				if(children == null)
				{
					return;
				}
				foreach(SecurityElement child in children)
				{
					if(child.Tag != "ENDPOINT")
					{
						continue;
					}
					value = child.Attribute("transport");
					if(value == null)
					{
						throw new ArgumentNullException("transport");
					}
					transport = (TransportType)Enum.Parse
						(typeof(TransportType), value, true);
					value = child.Attribute("port");
					if(value == null)
					{
						throw new ArgumentNullException("port");
					}
					if(String.Compare(value, "All", true) == 0)
					{
						portNumber = AllPorts;
					}
					else
					{
						portNumber = Int32.Parse(value);
					}
					value = child.Attribute("hostname");
					if(value == null)
					{
						throw new ArgumentNullException("hostname");
					}
					permissions.Add(new EndpointPermission
						(access, transport, value, portNumber));
				}
			}
		private void FromXml (ArrayList endpoints, NetworkAccess access)
		{
			foreach (SecurityElement endpoint in endpoints) {
				if (endpoint.Tag != "ENDPOINT")
					continue;
				string hostname = endpoint.Attribute ("host");
				TransportType transport = 
					(TransportType) Enum.Parse (typeof (TransportType), 
							            endpoint.Attribute ("transport"), 
							            true);
				string p = endpoint.Attribute ("port");
				int port = 0;
				if (p == "All") 
					port = SocketPermission.AllPorts;
				else
					port = Int32.Parse (p);

				AddPermission (access, transport, hostname, port);
			}
		}
	// Convert a list of end-points into an XML element list.
	private void AddToXml(SecurityElement parent, NetworkAccess access)
			{
				SecurityElement child;
				foreach(EndpointPermission info in permissions)
				{
					if(info.access == access)
					{
						child = new SecurityElement("ENDPOINT");
						parent.AddChild(child);
						child.AddAttribute
							("host", SecurityElement.Escape(info.hostName));
						child.AddAttribute
							("transport", info.transport.ToString());
						if(info.portNumber == AllPorts)
						{
							child.AddAttribute("port", "All");
						}
						else
						{
							child.AddAttribute
								("port", info.portNumber.ToString());
						}
					}
				}
			}
 static NetworkAccess IsBetterAccess(NetworkAccess currentAccess, NetworkAccess newAccess) =>
 newAccess > currentAccess ? newAccess : currentAccess;
Beispiel #32
0
 private void FromXml(ArrayList endpoints, NetworkAccess access)
 {
     throw new NotImplementedException();
 }
	// Count the number of endpoints with a specific access value.
	private int CountWithAccess(NetworkAccess access)
			{
				int count = 0;
				foreach(EndpointPermission info in permissions)
				{
					if(info.access == access)
					{
						++count;
					}
				}
				return count;
			}
 public void AddPermission(NetworkAccess access, string uriString)
 {
 }
	// Add permission information to this permissions object.
	public void AddPermission(NetworkAccess access, TransportType transport,
							  String hostName, int portNumber)
			{
				if(state == PermissionState.Unrestricted)
				{
					// No need to add permissions to an unrestricted set.
					return;
				}
				if(hostName == null)
				{
					throw new ArgumentNullException("hostName");
				}
				this.permissions.Add
					(new EndpointPermission(access, transport,
											hostName, portNumber));
			}
 public WebPermission(NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex)
 {
 }
		// Constructor.
		public SocketPermissionEnumerator(ArrayList list, NetworkAccess access)
				{
					e = list.GetEnumerator();
					this.access = access;
				}
 public WebPermission(NetworkAccess access, string uriString)
 {
 }
	public WebPermission(NetworkAccess access, Regex uriRegex) : this()
			{
				AddPermission(access, uriRegex);
			}
        public void SetNetworkAccess(NetworkAccess networkAccess)
        {
            NetworkAccess = networkAccess;

            ConnectivityChanged?.Invoke(this, new ConnectivityChangedEventArgs(NetworkAccess, ConnectionProfiles));
        }
        public void AddPermission (NetworkAccess access, TransportType transport, string! hostName, int portNumber) {
            Contract.Requires(hostName != null);

        }
 public WebPermission(NetworkAccess access, Regex uriRegex)
 {
     this.m_connectList = new ArrayList();
     this.m_acceptList = new ArrayList();
     this.AddPermission(access, uriRegex);
 }
 public void AddPermission(NetworkAccess access, string uriString)
 {
     if (uriString == null)
     {
         throw new ArgumentNullException("uriString");
     }
     if (!this.m_noRestriction)
     {
         Uri uri;
         if (Uri.TryCreate(uriString, UriKind.Absolute, out uri))
         {
             this.AddPermission(access, uri);
         }
         else
         {
             ArrayList list = new ArrayList();
             if (((access & NetworkAccess.Connect) != 0) && !this.m_UnrestrictedConnect)
             {
                 list.Add(this.m_connectList);
             }
             if (((access & NetworkAccess.Accept) != 0) && !this.m_UnrestrictedAccept)
             {
                 list.Add(this.m_acceptList);
             }
             foreach (ArrayList list2 in list)
             {
                 bool flag = false;
                 foreach (object obj2 in list2)
                 {
                     string strA = obj2 as string;
                     if ((strA != null) && (string.Compare(strA, uriString, StringComparison.OrdinalIgnoreCase) == 0))
                     {
                         flag = true;
                         break;
                     }
                 }
                 if (!flag)
                 {
                     list2.Add(uriString);
                 }
             }
         }
     }
 }
Beispiel #44
0
 public SocketPermission(NetworkAccess access, TransportType transport,
                         string hostName, int portNumber) : base()
 {
     m_noRestriction = false;
     AddPermission(access, transport, hostName, portNumber);
 }
 internal void AddPermission(NetworkAccess access, Uri uri)
 {
     if (uri == null)
     {
         throw new ArgumentNullException("uri");
     }
     if (!this.m_noRestriction)
     {
         ArrayList list = new ArrayList();
         if (((access & NetworkAccess.Connect) != 0) && !this.m_UnrestrictedConnect)
         {
             list.Add(this.m_connectList);
         }
         if (((access & NetworkAccess.Accept) != 0) && !this.m_UnrestrictedAccept)
         {
             list.Add(this.m_acceptList);
         }
         foreach (ArrayList list2 in list)
         {
             bool flag = false;
             foreach (object obj2 in list2)
             {
                 if ((obj2 is Uri) && uri.Equals(obj2))
                 {
                     flag = true;
                     break;
                 }
             }
             if (!flag)
             {
                 list2.Add(uri);
             }
         }
     }
 }
Beispiel #46
0
 static void SetCurrent()
 {
     currentAccess   = NetworkAccess;
     currentProfiles = new List <ConnectionProfile>(ConnectionProfiles);
 }
 public WebPermission(NetworkAccess access, string uriString)
 {
     this.m_connectList = new ArrayList();
     this.m_acceptList = new ArrayList();
     this.AddPermission(access, uriString);
 }
 public void AddPermission(NetworkAccess access, TransportType transport, string hostName, int portNumber)
 {
 }
 internal WebPermission(NetworkAccess access, Uri uri)
 {
     this.m_connectList = new ArrayList();
     this.m_acceptList = new ArrayList();
     this.AddPermission(access, uri);
 }
        public void AddPermission (NetworkAccess access, System.Text.RegularExpressions.Regex! uriRegex) {
            Contract.Requires(uriRegex != null);

        }
        public void AddPermission (NetworkAccess access, string! uriString) {
            Contract.Requires(uriString != null);

        }
Beispiel #52
0
 /// <summary>Initializes a new instance of the <see cref="T:System.Net.WebPermission" /> class with the specified access rights for the specified URI regular expression.</summary>
 /// <param name="access">A <see cref="T:System.Net.NetworkAccess" /> value that indicates what kind of access to grant to the specified URI. <see cref="F:System.Net.NetworkAccess.Accept" /> indicates that the application is allowed to accept connections from the Internet on a local resource. <see cref="F:System.Net.NetworkAccess.Connect" /> indicates that the application is allowed to connect to specific Internet resources. </param>
 /// <param name="uriRegex">A regular expression that describes the URI to which access is to be granted. </param>
 public WebPermission(NetworkAccess access, Regex uriRegex)
 {
     AddPermission(access, uriRegex);
 }