У меня есть приложение, в которое я хочу разрешить пользователям вводить данные для входа на свои собственные веб-сайты. Один из методов проверки подлинности - это «формы». Как я предполагал, что он работает, пользователи вводят способ & действия своей формы входа и имя/значение для каждого элемента учетных данных, например. один для имени пользователя, один для пароля. Мое приложение затем опубликует эти данные, чтобы имитировать логин, получить возвращенный файл cookie аутентификации и иметь возможность работать на своем сайте, как если бы он был зарегистрирован.Публикация данных в приложение ASP.NET
В принципе, это звучало как разумная вещь. Однако, как я уверен, вы знаете, ASP.NET имеет множество входов, а также скрытых, например. __VIEWSTATE, которые всегда отправляются обратно на сервер при подаче формы ASP.NET, например. когда регистрируется real. Когда мое приложение пытается войти в систему, оно не имеет полного списка входов на этой странице и их значений, например. всегда меняется __VIEWSTATE.
Мой вопрос: есть ли способ отправить данные на страницу ASPX, проводя только определенные входы, за исключением других, например. __VIEWSTATE?
Если страницы, скажем, PHP это, вероятно, выглядеть следующим образом:
Ex. 1:
...
<div id="header">
<form action="search.php" action="POST">
<div id="search">
<input type="text" name="query" id="SearchQueryText" value="Search query" />
<input type="button" name=submit" id="SearchSubmitButton" value="Search!" />
</div>
</form>
<form action="login.php" action="POST">
<input type="text" name="uname" id="Username" value="Username" />
<input type="text" name="passwd" id="Password" value="Password" />
<input type="button" name=submit" id="LoginSubmitButton" value="Login" />
</form>
...
</div>
...
в веб-формы ASP.NET, однако, за счет использования серверных элементов управления, он бы, вероятно, выглядеть следующим образом:
Ex. 2:
...
<body>
<form name="AspNetForm" method="post" action="/Products/SomethingOrOther.aspx" id="Form" enctype="multipart/form-data">
<div id="header">
<div id="search">
<input type="text id="ctl00$SearchComponent$SearchBox" name="ctl00$SearchComponent$SearchBox" value="Search query" />
<input type="submit" id="ctl00$SearchComponent$SearchSubmit" name="ctl00$SearchComponent$SearchSubmit" value="Search!">
</div>
<div id="login">
<input type="text id="ctl00$LoginComponent$Username" name="ctl00$LoginComponent$Username" value="Username" />
<input type="text" id="ctl00$LoginComponent$Password" name="ctl00$LoginComponent$Password" value="Password">
<input type="submit" id="ctl00$LoginComponent$LoginSubmit" name="ctl00$LoginComponent$LoginSubmit" value="Login">
</div>
</div>
...
</form>
</body>
...
С примером 1, представив регистрационную форму простого случай оприходования uname = что-то & PASSWD = somethingelse в login.php, однако, в ASP.NET, потому что все входы завернуты в ' глобальный '<form>
, чтобы отправить входные данные для входа, вы должны отправить глобальную форму и, следовательно, все входы.
Итак, что мне нужно, это способ отправить только определенные входы в этой глобальной форме, например. а не __VIEWSTATE, о которых мы не можем знать, не предварительно пробовав страницу.
Как использовать веб-службы для аутентификации? – jaderanderson 2010-11-25 19:06:05
@jaderanderon У каждого сайта есть логика аутентификации через веб-службу? Да, в идеальном мире это было бы так, как я бы это сделал, однако я хочу, чтобы система была совместима с * all * form auth системами, например. настраиваемые пользовательские элементы управления ASP.NET и т. д., и единственное, что есть у всех, заключается в представлении пользовательских данных через форму, которая стандартизирована ((X) HTML/HTTP POST). – oloftus 2010-11-25 22:23:14