2012-01-09 59 views
2

我有一个网站在asp.net 4.0中运行在天蓝色的webrole。 我正在使用简单的表单身份验证,并允许对各种页面,脚本和样式的不确定GET请求。
问题是我已经实现了扩展名“.kl”的自定义处理程序,它实际上是基于此扩展的代码提供图像。所以假设1.kl和2.kl的输出会有所不同。
我需要允许未经过身份验证的请求到此处理程序。
我应该怎么做?
这是我的webconfig相同的Asp.net窗体身份验证HTTP处理程序

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

回答

2

标签这纯粹是ASP.NET的问题,解决的办法是同一个用于Azure和上PREMIS部署。

您需要为处理程序的服务位置决定一个“文件夹”。例如,它可能是“/动态图像”或其他。并确保所有正在生成的引用/链接都指向此文件夹(“〜/ dynamic-images/1.kl”)。

现在您需要在您的配置中添加location元素。需要注意的是locationconfiguration的直接子(不要把它里面的System.Web):

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

有没有其他的方法(我知道),以实现自己的目标。

+0

是的..我想明白了.. thankx anywayz .. – 2012-01-09 10:56:52

0

还有一个解决方案,我想这个任务我自己012d是允许UnAuthenticated访问默认访问网站的根目录,然后拒绝访问所有的文件夹和子路径..这样任何处理程序将被允许被任何有用的用户访问,因为所有的子路径都不允许。

+1

如果你想要采用这种方法,我会建议稍作修改。打开访问完整的应用程序。然后创建一个/安全文件夹(或适当的名称),并仅对该文件夹应用身份验证和授权。你可以有多个子文件夹。这是更容易和清晰的维护。我不建议为所有文件夹管理授权规则,因为它很快就会成为维护此应用程序的团队的恶梦(甚至是创建它的人)。 – astaykov 2012-01-10 12:12:45

相关问题