2010-11-25 5 views
1

У меня есть приложение, в которое я хочу разрешить пользователям вводить данные для входа на свои собственные веб-сайты. Один из методов проверки подлинности - это «формы». Как я предполагал, что он работает, пользователи вводят способ & действия своей формы входа и имя/значение для каждого элемента учетных данных, например. один для имени пользователя, один для пароля. Мое приложение затем опубликует эти данные, чтобы имитировать логин, получить возвращенный файл 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, о которых мы не можем знать, не предварительно пробовав страницу.

+0

Как использовать веб-службы для аутентификации? – jaderanderson 2010-11-25 19:06:05

+0

@jaderanderon У каждого сайта есть логика аутентификации через веб-службу? Да, в идеальном мире это было бы так, как я бы это сделал, однако я хочу, чтобы система была совместима с * all * form auth системами, например. настраиваемые пользовательские элементы управления ASP.NET и т. д., и единственное, что есть у всех, заключается в представлении пользовательских данных через форму, которая стандартизирована ((X) HTML/HTTP POST). – oloftus 2010-11-25 22:23:14

ответ

0

Вы можете использовать страницу asp.net так же, как asp classic.

В html-действии вы можете поместить страницу aspx, а затем вы должны принять это.

, то вы можете использовать объект запроса asp.net для извлечения данных из формы. То же самое вы можете создать html-форму в строке и поместить ее, поместив ее в панель управления.

Затем вы можете указать кнопку asp.net как кнопку отправки.

+0

Я не уверен, что я полностью следую вашему методу, однако, я думаю, вы, возможно, неправильно поняли мой вопрос. Оглянувшись, я нашел эту статью http://bytes.com/topic/c-sharp/answers/213769-submit-html-form-programmatically, которая довольно хорошо описывает то, что я хочу достичь. Тем не менее, это не касается моей проблемы re: ASP.NET. Я изменил свой вопрос, чтобы лучше объяснить мою проблему. – oloftus 2010-11-25 22:48:17

2

Вы можете использовать AJAX для возврата значений на определенную страницу. В общем, Web Forms предназначен для публикации всех данных на странице при запуске события на стороне сервера. Затем вы выбираете, какие элементы/значения использовать в вашем коде. Если вы не хотите использовать состояние представления для элемента, вы можете отключить его (например, EnableViewState = False).

Смежные вопросы