我正在我的MVC 3应用程序中实现javascript文件上传功能,因此我需要使用Http Handler(.ashx)来允许大文件上传。现在我需要以某种方式禁止未经身份验证的用户调用处理程序的方法。如果我有一个控制器,我只需要申请[授权]。但是当应用于Http Handler的方法时,该属性是否有效?如果没有,我怎么才能只允许拥有当前会话cookie的人拨打Http Handler?
答案 0 :(得分:5)
您可以使用web.config中的<location>
部分拒绝匿名用户访问~/upload.ashx
:
<location path="upload.ashx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
备注:从不使用<location>
标记来控制ASP.NET MVC控制器操作和路由的授权。使用内置的[Authorize]
属性来修饰相应的控制器/操作。