2009-08-25 9 views
0

Mon gestionnaire de formulaire asp.net reçoit uniquement des données de méthode de formulaire lorsque IIS est configuré pour l'authentification Windows intégrée. Lorsque je passe à l'authentification anonyme, la collection request.form est vide. Je voudrais que IIS soit configuré pour l'authentification anonyme. Qu'est-ce qui peut causer cela? J'ai inclus mon code ci-dessous:Request.Form ne fonctionne pas lorsque IIS est défini sur l'authentification anonyme

Voici mon formulaire HTML page (il n'y a pas de code derrière pour cela):


<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Testing.aspx.vb" Inherits="Testing" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    <form name="frm" method="post" action="TestResults.aspx"> 
    <input type="text" name="mydata" value="" size="25" maxlength="255" /> 
    <input type="submit" name="submit" value="Submit" /> 
    </form> 
</body> 
</html> 

Voici mon gestionnaire de formulaire code HTML avec le code sous-jacent à la liste toutes les variables de formulaire:


<%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestResults.aspx.vb" Inherits="TestResults" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <div id="resultsid" runat="server"> 
    </div> 
</body> 
</html> 

Partial Class TestResults 
    Inherits System.Web.UI.Page 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim aString As String = "" 

    For Each item As String In Request.Form 
     aString &= item & " = " & Request.Form(item) & "<br />" 
    Next 

    Me.resultsid.InnerHtml = "<b>The Data:</b><br />" & aString 
    End Sub 
End Class 
+0

Peut-on utiliser Fiddler ou Firebug pour vérifier que les données POST est certainement envoyé dans la demande? Juste pour être sûr que c'est IIS qui est cassé plutôt que le navigateur. – stevemegson

Répondre

0

Votre balise de formulaire manque le runat = server. Éditer: En regardant un peu plus près ce que vous essayez de faire, vous essayez de faire une publication croisée page. Ce type de publication est un peu plus impliqué dans asp.net, que dans l'ancien ASP. Cet article pourrait être utile:

http://www.c-sharpcorner.com/UploadFile/DipalChoksi/xpgpostbk_asp2_dc08102006235543PM/xpgpostbk_asp2_dc.aspx

+0

J'ai ajouté runat = "server" à la balise de formulaire. Cela n'a pas réglé le problème. Merci pour la suggestion cependant. –

+0

En fait, vous devriez pouvoir laisser le runat = "server" hors du formulaire, ignorer tout le mécanisme de publication, et juste fouiller dans Request.Form directement. Pas forcément une bonne idée et certainement pas très ".NET-y", mais ça * devrait * encore fonctionner. – stevemegson

+0

Je suis enclin à abandonner ma stratégie de publication inter-pages pour voir si je peux accéder au contenu de Request.Form. –

Questions connexes