Settings.vb
上传用户:wangting
上传日期:2020-01-24
资源大小:2226k
文件大小:9k
源码类别:

破解

开发平台:

ASP/ASPX

  1. #Region "GPL License"
  2. 'This file is part of XSS Tunnel.
  3. '
  4. 'XSS Tunnel, XSS Tunneling tool 
  5. 'Copyright (C) 2007 Ferruh Mavituna
  6. 'This program is free software; you can redistribute it and/or
  7. 'modify it under the terms of the GNU General Public License
  8. 'as published by the Free Software Foundation; either version 2
  9. 'of the License, or (at your option) any later version.
  10. 'This program is distributed in the hope that it will be useful,
  11. 'but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. 'GNU General Public License for more details.
  14. 'You should have received a copy of the GNU General Public License
  15. 'along with this program; if not, write to the Free Software
  16. 'Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  17. #End Region
  18. Imports System.Net
  19. #Region "UriManager"
  20. ''' <summary>
  21. ''' UriManager Settings
  22. ''' </summary>
  23. ''' <remarks></remarks>
  24. Public Class UriManager
  25.     ''' <summary>
  26.     ''' Lock Object for thread-safety
  27.     ''' </summary>
  28.     ''' <remarks></remarks>
  29.     Private ObjLock As New Object
  30.     Private _Proxy As WebProxy
  31.     ''' <summary>
  32.     ''' Proxy Settings
  33.     ''' </summary>
  34.     ''' <value>The proxy.</value>
  35.     ''' <returns></returns>
  36.     ''' <remarks></remarks>
  37.     Public Property Proxy() As WebProxy
  38.         Get
  39.             Return _Proxy
  40.         End Get
  41.         Set(ByVal value As WebProxy)
  42.             _Proxy = value
  43.         End Set
  44.     End Property
  45.     Private _proxyEnabled As Boolean
  46.     ''' <summary>
  47.     ''' Gets or sets a value indicating whether Proxy Enabled ?.
  48.     ''' </summary>
  49.     ''' <value><c>true</c> if Proxy Enabled; otherwise, <c>false</c>.</value>
  50.     Public Property ProxyEnabled() As Boolean
  51.         Get
  52.             Return _proxyEnabled
  53.         End Get
  54.         Set(ByVal value As Boolean)
  55.             _proxyEnabled = value
  56.         End Set
  57.     End Property
  58.     Private _userAgentString As String
  59.     ''' <summary>
  60.     ''' Gets or sets the user agent string.
  61.     ''' </summary>
  62.     ''' <value>The user agent string.</value>
  63.     Public Property UserAgentString() As String
  64.         Get
  65.             Return _userAgentString
  66.         End Get
  67.         Set(ByVal value As String)
  68.             _userAgentString = value
  69.         End Set
  70.     End Property
  71.     Private _Credential As NetworkCredential
  72.     ''' <summary>
  73.     ''' Gets or sets Network Credentials
  74.     ''' </summary>
  75.     ''' <value>The Network Credential.</value>
  76.     ''' <returns></returns>
  77.     ''' <remarks></remarks>
  78.     Public Property Credential() As NetworkCredential
  79.         Get
  80.             Return _Credential
  81.         End Get
  82.         Set(ByVal value As NetworkCredential)
  83.             _Credential = value
  84.         End Set
  85.     End Property
  86.     Private _browser As Browser
  87.     ''' <summary>
  88.     ''' Gets or sets the browser.
  89.     ''' </summary>
  90.     ''' <value>The browser.</value>
  91.     Public Property Browser() As Browser
  92.         Get
  93.             'If empty Load new one with defaults
  94.             If _browser = Nothing Then
  95.                 _browser = New Browser()
  96.                 _browser.UserAgent = "XSS Shell"
  97.                 _browser.KeepAlive = True
  98.             End If
  99.             Return _browser
  100.         End Get
  101.         Set(ByVal value As Browser)
  102.             _browser = value
  103.         End Set
  104.     End Property
  105.     ''' <summary>
  106.     ''' Add new cookie if it's not in already and not expired
  107.     ''' </summary>
  108.     ''' <param name="OldCookieCollection">The cookie.</param>
  109.     ''' <param name="AddCookieCollection">The add cookie collection.</param>
  110.     ''' <returns>New combined cookie collection</returns>
  111.     ''' <remarks>Synch cookies, remove expired ones.</remarks>
  112.     Private Shared Function SyncCookies(ByVal oldCookieCollection As CookieCollection, ByVal addCookieCollection As CookieCollection) As CookieCollection
  113.         Dim RetCollection As New CookieCollection()
  114.         'Combine Old Cookies and New ones
  115.         oldCookieCollection.Add(addCookieCollection)
  116.         'Do not add 
  117.         For Each OldCookie As Cookie In oldCookieCollection
  118.             'Add if session cookie or not expired
  119.             If OldCookie.Expires = Date.MinValue OrElse Not OldCookie.Expired Then
  120.                 RetCollection.Add(OldCookie)
  121.             End If
  122.         Next
  123.         Return RetCollection
  124.     End Function
  125.     Private _Cookies As CookieCollection
  126.     ''' <summary>
  127.     ''' Gets or sets the active cookies.
  128.     ''' </summary>
  129.     ''' <value>The active cookies.</value>
  130.     Public Property Cookies() As CookieCollection
  131.         Get
  132.             SyncLock ObjLock
  133.                 If _Cookies Is Nothing Then _Cookies = New CookieCollection()
  134.                 'Add Custom Cookies
  135.                 _Cookies.Add(CustomCookies)
  136.                 Return _Cookies
  137.             End SyncLock
  138.         End Get
  139.         Set(ByVal value As CookieCollection)
  140.             SyncLock ObjLock
  141.                 _Cookies = SyncCookies(_Cookies, value)
  142.             End SyncLock
  143.         End Set
  144.     End Property
  145.     Private _CookieContainer As CookieContainer
  146.     ''' <summary>
  147.     ''' Gets or sets the cookie container.
  148.     ''' </summary>
  149.     ''' <value>The cookie container.</value>
  150.     ''' <remarks>Returns a new cookie container for HttpWebRequests</remarks>
  151.     Public ReadOnly Property CookieContainer() As CookieContainer
  152.         Get
  153.             If _CookieContainer Is Nothing Then
  154.                 _CookieContainer = New CookieContainer()
  155.                 _CookieContainer.Add(Cookies)
  156.             End If
  157.             'Accepted by Unit tests for now, seems OK
  158.             '_CookieContainer = New CookieContainer()
  159.             '_CookieContainer.Add(Cookies)
  160.             Return _CookieContainer
  161.         End Get
  162.     End Property
  163.     Private _RequestTimeout As Integer
  164.     ''' <summary>
  165.     ''' Gets or sets the request timeout as miliseconds.
  166.     ''' </summary>
  167.     ''' <value>The request timeout.</value>
  168.     Public Property RequestTimeout() As Integer
  169.         Get
  170.             If _RequestTimeout = 0 Then _RequestTimeout = DefaultRequestTimeout
  171.             Return _RequestTimeout
  172.         End Get
  173.         Set(ByVal value As Integer)
  174.             _RequestTimeout = value
  175.         End Set
  176.     End Property
  177.     Private _maximumRedirect As Integer
  178.     ''' <summary>
  179.     ''' Gets or sets the maximum redirect.
  180.     ''' </summary>
  181.     ''' <value>The maximum redirect.</value>
  182.     Private ReadOnly Property DefaultMaximumRedirect() As Integer
  183.         Get
  184.             Return 3
  185.         End Get
  186.     End Property
  187.     ''' <summary>
  188.     ''' Gets or sets the maximum redirect.
  189.     ''' </summary>
  190.     ''' <value>The maximum redirect.</value>
  191.     Public Property MaximumRedirect() As Integer
  192.         Get
  193.             If _maximumRedirect = 0 Then _maximumRedirect = DefaultMaximumRedirect
  194.             Return _maximumRedirect
  195.         End Get
  196.         Set(ByVal value As Integer)
  197.             _maximumRedirect = value
  198.         End Set
  199.     End Property
  200.     ''' <summary>
  201.     ''' Gets the default request timeout.
  202.     ''' </summary>
  203.     ''' <value>The default request timeout.</value>
  204.     Public Shared ReadOnly Property DefaultRequestTimeout() As Integer
  205.         Get
  206.             Return 60000
  207.         End Get
  208.     End Property
  209.     ''' <summary>
  210.     ''' New UriManager Settings with default values
  211.     ''' </summary>
  212.     ''' <remarks></remarks>
  213.     Public Sub New()
  214.     End Sub
  215.     Private _Headers As Dictionary(Of String, String)
  216.     ''' <summary>
  217.     ''' Gets or sets the Http Headers.
  218.     ''' </summary>
  219.     ''' <value>The Http Header.</value>
  220.     Public Property Headers() As Dictionary(Of String, String)
  221.         Get
  222.             If _Headers Is Nothing Then _Headers = New Dictionary(Of String, String)
  223.             Return _Headers
  224.         End Get
  225.         Set(ByVal value As Dictionary(Of String, String))
  226.             _Headers = value
  227.         End Set
  228.     End Property
  229.     ''' <summary>
  230.     ''' Adds the header.
  231.     ''' </summary>
  232.     ''' <param name="Name">The name.</param>
  233.     ''' <param name="Value">The value.</param>
  234.     ''' <returns></returns>
  235.     Public Function AddHeader(ByVal name As String, ByVal value As String) As Boolean
  236.         If Headers.ContainsKey(name) Then
  237.             Return False
  238.         Else
  239.             Headers.Add(name, value)
  240.             Return True
  241.         End If
  242.     End Function
  243.     Private _CustomCookies As New CookieCollection()
  244.     ''' <summary>
  245.     ''' Gets or sets the custom cookies.
  246.     ''' </summary>
  247.     ''' <value>The custom cookies.</value>
  248.     ''' <remarks>Will replace value with old custom if already exist.</remarks>
  249.     Public Property CustomCookies() As CookieCollection
  250.         Get
  251.             Return _CustomCookies
  252.         End Get
  253.         Set(ByVal value As CookieCollection)
  254.             _CustomCookies = value
  255.         End Set
  256.     End Property
  257.     Private _UseDefaultCredentials As Boolean
  258.     ''' <summary>
  259.     ''' Gets or sets a value indicating whether request should use default credentials.
  260.     ''' </summary>
  261.     ''' <value>
  262.     ''' <c>true</c> if request uses default credentials; otherwise, <c>false</c>.
  263.     ''' </value>
  264.     ''' <remarks>Current application logged user credentials </remarks>
  265.     Public Property UseDefaultCredentials() As Boolean
  266.         Get
  267.             Return _UseDefaultCredentials
  268.         End Get
  269.         Set(ByVal value As Boolean)
  270.             _UseDefaultCredentials = value
  271.         End Set
  272.     End Property
  273. End Class
  274. #End Region