HttpWebRequest и аутентификация форм в C#

используйте этот код

public static boolean shouldWakeUp(boolean barking, int hourOfTheDay) {
    if (barking) {
        if (hourOfTheDay==8 || hourOfTheDay==7 || hourOfTheDay==6 || hourOfTheDay==5 || hourOfTheDay==4 || hourOfTheDay==3 || hourOfTheDay==2 || hourOfTheDay==1 || hourOfTheDay==23 || hourOfTheDay==00) {
            return true;
        } else {
            return false;
        }
        if (hourOfTheDay < 0 || hourOfTheDay > 23)
            return false;
    }
}

Для сравнения вы должны использовать == вместо =

6
задан vijrox 1 June 2017 в 20:33
поделиться

4 ответа

Это зависит от того, как веб-сайт аутентифицирует пользователей. Если они используют стандартную аутентификацию или аутентификацию Windows, то можно установить Credentials свойство HttpWebRequest класс к информации об имени пользователя/пароле/домене и это должно работать.

Однако это кажется, что необходимо ввести имя пользователя на сайте, что означает, что Вы оказываетесь перед необходимостью входить в сайт сначала. Смотря на основную страницу, это - то, что я нахожу в <form> элемент, который обрабатывает вход в систему:

<form name="formlogin" method="post" action="./defalogin.php" >
  <input name="emtext" type="text" id="emtext" size="12">
  <input name="pstext" type="password" id="pstext" size="12">
  <input type="submit" name="Submit" value="Logn in" 
    onClick="return logincheck()" >
</form>

Я включал только соответствующие части.

Учитывая это, необходимо перейти в ./defalogin.php страница сначала с HttpWebRequest и POST emtext и pstext значения. Кроме того, удостоверьтесь, что Вы устанавливаете CookieContainer свойство к экземпляру CookieContainer. Когда тот вызов к возвратам POST, это больше, чем, вероятно, собирается быть заполненным с cookie, который необходимо будет передать обратно сайту. Просто продолжайте устанавливать CookieContainer свойство на любом последующем HttpWebRequest экземпляры к этому CookieContainer для проверки cookie розданы.

Затем Вы перешли бы к странице, обозначенной в ссылке.

Из беспокойства также logincheck функция JavaScript, но рассмотрение источников сценария, это не делает ничего достойного внимания.

6
ответ дан 10 December 2019 в 02:54
поделиться

Учетные данные, что Вы являетесь передающими, для аутентификации Windows. Необходимо отправить данные сообщения с данными, которые подражают представлению формы, затем получают набор сеансовых куки в использовании ответа ответа тот cookie для будущих запросов

Смотрите на этот ответ, который имеет код, чтобы сделать это:

Войдите в страницу с HttpWebRequest

2
ответ дан 10 December 2019 в 02:54
поделиться

Вы не можете сделать этого этот путь; учетные данные Вы являетесь передающими, могут использоваться со схемой стандартной аутентификации (т.е. где в браузере Вы получаете диалоговое появление имени пользователя/пароля.) необходимо будет моделировать запись данных в ту форму и поймать cookie входа в систему и использование это.

1
ответ дан 10 December 2019 в 02:54
поделиться

Класс NetworkCredential действительно для управления регулярными учетными данными окон (NTLM, Kerberos, и т.д.).

Тот сайт является сайтом PHP, работающим на Apache, таким образом, я не думаю, что они используют NTLM или kerberos.

То, что Вы хотите сделать, некоторые размещают поля FORM на сайт, затем сохраняют cookie, который Вы возвращаете. Удостоверьтесь по последующим запросам, Вы продвигаете cookie назад на сайт, таким образом, он знает, что Вы уже вошли в систему.

0
ответ дан 10 December 2019 в 02:54
поделиться
Другие вопросы по тегам:

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