asp.net - type - request file asp net




Come caricare un modulo dalla pagina HTML alla pagina ASPX (5)

Questo è molto possibile. Ho preso in giro 3 pagine che dovrebbero darti una prova di concetto:

pagina .aspx:

<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox TextMode="password" ID="TextBox2" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
</form>

codice dietro:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    For Each s As String In Request.Form.AllKeys
        Response.Write(s & ": " & Request.Form(s) & "<br />")
    Next
End Sub

Pagina HTML separata:

<form action="http://localhost/MyTestApp/Default.aspx" method="post">
    <input name="TextBox1" type="text" value="" id="TextBox1" />
    <input name="TextBox2" type="password" id="TextBox2" />
    <input type="submit" name="Button1" value="Button" id="Button1" />
</form>

... e rigurgita i valori del modulo come previsto. Se questo non funziona, come altri suggeriscono, usa uno strumento di analisi del traffico (violinista, etereo), perché probabilmente qualcosa non sta andando dove ti aspetti.

Come posso inviare un modulo da una pagina HTML a una pagina ASPX (2.0) ed essere in grado di leggere i valori?

Attualmente ho un sito ASP.NET che utilizza il provider di appartenenza e tutto funziona correttamente. Gli utenti possono accedere dalla pagina Login.aspx.

Ora vogliamo essere in grado di consentire agli utenti di accedere direttamente da un altro sito Web, che è fondamentalmente una pagina HTML statica. Gli utenti devono essere in grado di inserire il loro nome e password su questa pagina HTML e averlo POST alla mia pagina Login.aspx (dove posso quindi registrarli manualmente).

È possibile passare i valori del modulo da HTML a ASPX? Ho provato tutto e la collezione Request.Form.Keys è sempre vuota. Non riesco a utilizzare un GET HTTP poiché si tratta di credenziali e non può essere passato su una stringa di query.

L'unico modo che conosco è un iframe.


Sei sicuro che il tuo modulo HTML sia corretto e, in effetti, fa un POST HTTP? Suggerirei di eseguire Fiddler2 e quindi provare ad accedere tramite il tuo Login.aspx, quindi il sito HTML remoto e quindi confrontare le richieste inviate al server. Per me, ASP.Net ha sempre funzionato bene - se la richiesta HTTP contiene un POST valido, posso ottenere valori usando Request.Form ...


Sicuro.

Il modo più semplice per vedere come si potrebbe fare è navigare nella pagina di aspx che si desidera pubblicare. Quindi salva l'origine di quella pagina come HTML. Cambia l'azione del modulo nella tua nuova pagina html per rimandare alla pagina di aspx da cui l'hai originariamente copiata.

Aggiungi tag di valore ai campi del modulo e inserisci i dati desiderati, quindi apri la pagina e premi il pulsante di invio.


La raccolta Request.Form.Keys sarà vuota se nessuno degli input HTML ha NAME. È facile dimenticare di metterli lì dopo aver fatto .NET per un po '. Basta nominarli e sarai a posto.


Spero che questo ti aiuti - Metti questo tag in html e

rimuovi il tuo contenuto di design login.aspx..è sufficiente scrivere solo la direttiva di pagina

e otterrete i valori nella pagina aspx dopo l'invio del pulsante clic come questo - Pagina_Load protetto (oggetto mittente, EventArgs e) {

        if (!IsPostBack)
        {
            CompleteRegistration();
        }
    }

public void CompleteRegistration () {

        NameValueCollection nv = Request.Form;
        if (nv.Count != 0)
        {
            string strname = nv["txtbox1"];
            string strPwd = nv["txtbox2"];
        }
    }




asp.net