用于HTTP处理程序的相同Asp.net表单身份验证

本文关键字:Asp net 表单 身份验证 HTTP 处理 程序 用于 | 更新日期: 2023-09-27 18:19:57

我有一个在asp.net 4.0中制作的网站,运行在azure webrole中。我使用简单的表单身份验证,并允许对各种页面、脚本和样式进行未经审核的GET请求
问题是,我已经为扩展名".kl"实现了一个自定义处理程序,它实际上是基于具有该扩展名的代码提供图像的。所以假设1.kl和2.kl的输出是不同的
我需要允许未经身份验证的请求到此处理程序
我该怎么做
这是我的webconfig 中的标签

<authentication mode="Forms">
      <forms loginUrl="~/UserPages/UserLogin.aspx" timeout="2880" name=".ASPXF2KAUTH" protection="All" path="/" defaultUrl="~/CodeGeneratorPages/SC_WC_CodeGen.aspx">
      </forms>
    </authentication>

用于HTTP处理程序的相同Asp.net表单身份验证

这纯粹是一个ASP.NET问题,Azure和预部署的解决方案是一样的。

您需要决定一个单独的"文件夹",用于处理程序的服务位置。例如,它可以是"/动态图像"或其他什么。并确保你生成的所有引用/链接都指向这个文件夹("~/dynamic images/1.kl")

现在您需要在配置中添加一个location元素。注意,位置是配置的直接子项(不要将其放在system.web中):

<location path="dynamic-images">
    <system.web>
       <authorization>
          <allow users="*" />
       </authorization>
    </system.web>
</location>

(据我所知)没有其他方法可以实现你的目标。

还有我自己设计的这个任务的另一个解决方案默认情况下,允许对网站根目录进行UnAuthenticated访问,然后拒绝访问所有文件夹和子路径。。这样,任何处理程序都可以被任何匿名用户访问,因为所有的子路径都不被允许。