【发布时间】:2009-08-25 15:25:24
【问题描述】:
当 IIS 配置为集成 Windows 身份验证时,我的 asp.net 表单处理程序仅接收表单方法发布数据。当我将其切换到匿名身份验证时, request.form 集合为空。我想为匿名身份验证配置 IIS。这可能是什么原因造成的?我在下面包含了我的代码:
这是我的表单页面 HTML(后面没有代码):
<%@ 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>
这是我的表单处理程序 HTML 代码,后面是列出所有表单变量的代码:
<%@ 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
【问题讨论】:
-
您可以使用 Fiddler 或 Firebug 来检查请求中是否确实发送了 POST 数据?只是为了确保它被破坏的是 IIS 而不是浏览器。