Скопируйте html со страниц, на которых вам нужно войти (VB.net или C #) [dублировать]

В соответствии с шахматной версией страницы BitScan и моими собственными измерениями вычесть и xor быстрее, чем negate и mask.

(Обратите внимание, что если вы собираетесь подсчитать конечные нули в 0, метод, поскольку у меня он возвращает 63, тогда как отрицание и маска возвращаются 0.)

Вот 64-битный вычитание и xor:

unsigned long v; // find the number of trailing zeros in 64-bit v int r; // result goes here static const int MultiplyDeBruijnBitPosition[64] = { 0, 47, 1, 56, 48, 27, 2, 60, 57, 49, 41, 37, 28, 16, 3, 61, 54, 58, 35, 52, 50, 42, 21, 44, 38, 32, 29, 23, 17, 11, 4, 62, 46, 55, 26, 59, 40, 36, 15, 53, 34, 51, 20, 43, 31, 22, 10, 45, 25, 39, 14, 33, 19, 30, 9, 24, 13, 18, 8, 12, 7, 6, 5, 63 }; r = MultiplyDeBruijnBitPosition[((uint32_t)((v ^ (v-1)) * 0x03F79D71B4CB0A89U)) >> 58];

Для справки, вот 64-битная версия метода отрицания и маски:

unsigned long v; // find the number of trailing zeros in 64-bit v int r; // result goes here static const int MultiplyDeBruijnBitPosition[64] = { 0, 1, 48, 2, 57, 49, 28, 3, 61, 58, 50, 42, 38, 29, 17, 4, 62, 55, 59, 36, 53, 51, 43, 22, 45, 39, 33, 30, 24, 18, 12, 5, 63, 47, 56, 27, 60, 41, 37, 16, 54, 35, 52, 21, 44, 32, 23, 11, 46, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6 }; r = MultiplyDeBruijnBitPosition[((uint32_t)((v & -v) * 0x03F79D71B4CB0A89U)) >> 58];
25
задан smartdirt 10 December 2009 в 21:09
поделиться

3 ответа

Какую аутентификацию вы используете? Если это проверка подлинности форм, то в лучшем случае вам нужно будет найти файл cookie .ASPXAUTH и передать его в запросе WebClient .

В худшем случае это не сработает.

3
ответ дан John Saunders 15 August 2018 в 15:49
поделиться
  • 1
    проверка подлинности форм – smartdirt 10 December 2009 в 21:19
  • 2
    Тогда вам понадобится WebClient , чтобы вести себя так, как если бы браузер действовал. Вам нужно отправить файл cookie. – John Saunders 10 December 2009 в 21:26
  • 3
    Я не знаю, как это сделать. Какие-либо предложения? Благодарю. – smartdirt 10 December 2009 в 21:33
  • 4
    Получите файл cookie с помощью Request.Cookies, а затем отправьте его с помощью HttpWebRequest.Cookies. Вы не сможете использовать WebClient. – John Saunders 10 December 2009 в 22:31
  • 5
    классический случай здесь неправильного ответа принят;) – Black 2 November 2017 в 07:08
  Публичная функция getWeb (ByRef sURL As String) As String Dim myWebClient As New System.Net.WebClient () Попробуйте отключить myCredentialCache как новый System.Net.CredentialCache () Dim myURI As New Uri (sURL) myCredentialCache.  Добавить (myURI, «ntlm», System.Net.CredentialCache.DefaultNetworkCredentials) myWebClient.Encoding = System.Text.Encoding.UTF8 myWebClient.Credentials = myCredentialCache Возвращает myWebClient.DownloadString (myURI) Catch ex As Exception Возврат «Исключение» & amp;  ex.ToString () End Try End Function  
2
ответ дан Druid 15 August 2018 в 15:49
поделиться

Вам нужно предоставить объекту WebClient учетные данные. Что-то вроде этого ...

  WebClient client = new WebClient ();  client.UseDefaultCredentials = true;  client.Credentials = новый NetworkCredential («имя пользователя», «пароль»);   
79
ответ дан Ryan Alford 15 August 2018 в 15:49
поделиться
  • 1
    Это сработало. Обратите внимание, что мне не нужно было устанавливать UseDefaultCredentials в true. – NightShovel 9 March 2015 в 23:50
  • 2
    Где вы отправили адрес веб-сайта – user 27 June 2015 в 04:48
Другие вопросы по тегам:

Похожие вопросы: