在ASP.NET MVC 3应用程序中为ashx处理程序设置自动化规则

Max*_*lov 0 asp.net security asp.net-mvc httphandler

我正在我的MVC 3应用程序中实现javascript文件上传功能,因此我需要使用Http Handler(.ashx)来允许大文件上传.现在我需要以某种方式禁止未经身份验证的用户调用处理程序的方法.如果我有一个控制器,我只需要申请[授权].但是当应用于Http Handler的方法时,该属性是否有效?如果没有,我怎样才能只允许拥有当前会话cookie的人拨打Http Handler?

Dar*_*rov 5

您可以使用<location>web.config中的部分拒绝~/upload.ashx匿名用户的访问:

<location path="upload.ashx">
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

备注:永远不要使用<location>标记来控制ASP.NET MVC控制器操作和路由的授权.使用内置[Authorize]属性来装饰相应的控制器/操作.