0

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

4

1 回答 1

5

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

<location path="upload.ashx">
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</location>

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

于 2012-06-11T17:11:50.027 回答