6

我在我正在处理的 Intranet 站点的几个地方使用 Web 方法,它们工作正常,但是每次我尝试访问 Web 方法时,一个页面都会不断抛出 HTTP 401 错误。

我不知道如何解决这个问题,我已经尝试用 web 方法评论所有内容,但仍然出现 401 错误,即使是在SELECT 1使用分析器查看数据库时,即使是刚刚连接到数据库的基本连接也没有显示出来。

我的 web.config 对于 Intranet 中的所有页面都是相同的,与使用 web 方法的页面相比,我看不出我的 ASP.Net 页面有任何差异。

谁能告诉我为什么仅此页面而不是其他页面会发生这种情况?还有我怎样才能解决这个问题?

ASP.Net 代码(从按钮的 OnClientClick 调用)

   function SendEmails()
   {

      var Grid = document.getElementById("instructorGrid");
      var mailBody = document.getElementById("txtMailBody");
      var ddlDutyPeriod = document.getElementById("DDL_DutyPeriods");

         var cell = Grid.rows[i].cells;
         var HTML = cell[0].innerHTML;
         var chkBox = cell[5].innerHTML;

         PageMethods.TestMethod()
   }

脚本管理器

 <asp:ScriptManager ID="ScriptManager1" 
                         runat="server" 
                         EnableScriptGlobalization="true"
                         EnablePageMethods="true" 
                         EnableScriptLocalization="true">
  </asp:ScriptManager>

VB.Net 代码

  <System.Web.Services.WebMethod()>
   Public Shared Sub TestMethod()

      'Dim conn1 As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())

      'Dim cmd2 As New SqlCommand

      'cmd2.CommandType = CommandType.Text
      'cmd2.CommandText = "SELECT 1"


      'cmd2.Connection = conn1

      'conn1.Open()
      'cmd2.ExecuteNonQuery()
      'conn1.Close()

   End Sub

提琴手结果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Authorized</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Authorized</h2>
<hr><p>HTTP Error 401. The requested resource requires user authentication.</p>
</BODY></HTML>

更新:

我曾尝试在此链接http://support.microsoft.com/kb/306158中的一半代码中使用模拟用户,但是我不能这样做,因为该方法是一种网络方法。

我还尝试按照下面的建议在 web.config 中添加对我的登录页面的匿名访问,但这也没有帮助

4

3 回答 3

2

在您的 web.config 文件中添加模拟标记。这应该允许在尝试访问您的网络方法时使用特定帐户进行模拟。有关方向,请参阅此支持文章

<system.web>

<identity impersonate="true" userName="Yang" password="bar" />

</system.web>
于 2012-05-15T08:36:34.387 回答
2

我认为您正在使用 FormsAuthentication。您必须为您的登录页面提供匿名访问权限。

<location path="Login.aspx">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>
于 2012-05-14T21:49:11.747 回答
1

这是一个很长的镜头,但你的 Web.Config 中有这个吗?

<system.web.extensions>
  <scripting>
    <webServices>
      <authenticationService enabled="true" />
    </webServices>
  </scripting>
</system.web.extensions>
于 2012-05-10T11:13:14.953 回答