ASP.NET WebMethod,可在有会话和无会话的情况下使用
我正在用C#制作一个ASP.NET网页。我发现,如果网页在短时间内处于孤立状态,每当网页试图调用WebMethod时,我就会收到401个未经授权的错误。我认为这可能是由于会话超时造成的 当用户第一次进入这个页面时,当我进行一些后端缓存并使用会话跟踪时,我只在很短的时间内使用会话。此时,页面不断地点击后端进行更新,这将刷新会话。完成后,我不再需要任何会话状态 有没有可能有一个WebMethod不需要会话状态就可以工作,但如果它存在,它能够找到并访问它?或者,如果它在调用WebMethod时自动创建了一个空会话,也可以这样做ASP.NET WebMethod,可在有会话和无会话的情况下使用,asp.net,session,webmethod,http-status-code-401,unauthorized,Asp.net,Session,Webmethod,Http Status Code 401,Unauthorized,我正在用C#制作一个ASP.NET网页。我发现,如果网页在短时间内处于孤立状态,每当网页试图调用WebMethod时,我就会收到401个未经授权的错误。我认为这可能是由于会话超时造成的 当用户第一次进入这个页面时,当我进行一些后端缓存并使用会话跟踪时,我只在很短的时间内使用会话。此时,页面不断地点击后端进行更新,这将刷新会话。完成后,我不再需要任何会话状态 有没有可能有一个WebMethod不需要会话状态就可以工作,但如果它存在,它能够找到并访问它?或者,如果它在调用WebMethod时自动创建
谢谢 如果我的理解是正确的,您应该将Web服务放在子文件夹中,并将其配置为允许匿名用户: 您的典型根web.config如下所示:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880">
</forms>
</authentication>
<authorization>
<deny users="*"/>
</authorization>
在子文件夹中,创建一个新的web.config文件并覆盖授权设置:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</configuration>
除了@Jupaol给出的ans之外
您可以轻松使用
web配置的Location
元素
用这样的东西
<configuration>
<location path="Url_To_WebMethod">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
这将从您的web方法中消除身份验证的需要,然后您将能够使用它而不需要任何auth cookie
mm,因此您希望在不需要身份验证的情况下调用该服务?是的,我只想处理没有会话或会话但其中没有存储任何内容的情况。不幸的是,目前401 Unauthorized错误被抛出到WebMethod中的任何代码之前,因此我根本无法运行任何类型的检查。感谢您的提示。我不知道有允许和拒绝两个选项。虽然那个“?”应该是“*”,我想?