我的网站有一个名为 uploads 的文件夹,其中每个客户都有一个文件夹。我的问题是,拒绝用户 A 查看来自用户 B 的上传的最佳做法是什么?
问问题
83 次
4 回答
1
您可以通过更改 web.config 来做到这一点。请参阅此处的文档:http: //support.microsoft.com/kb/815151
基本上你的 web.config 看起来像:
<?xml version="1.0"?>
<configuration>
<location path="uploads/UserA">
<system.web>
<authorization>
<allow users="UserA"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="uploads/UserB">
<system.web>
<authorization>
<allow users="UserB"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>
于 2012-10-02T13:11:04.660 回答
1
如果用户无权访问所请求的路径,也许可以考虑使用 HttpHandler 来拦截请求并生成 403(或您想要做的任何事情)。
或者,您可以将 Global.asax 中的逻辑放在 BeginRequest 方法中。
于 2012-10-02T13:16:11.203 回答
0
您可以对文件夹使用 NTFS 权限,强制用户进行身份验证。我在 2000 年为一个网站做了这个。虽然在这种情况下,这就像用大炮杀死蚊子。
于 2012-10-02T13:20:26.817 回答
0
假设您可能具有以下数据结构:
您可以将文件名写入数据库列。
因此,您可以使用 True/False 添加一个名为“Allow-Anonymous”的列。
现在在从服务器访问您的内容时,检查 db 表,如果Allow-Anonymous
是False
并且Visiting-User
是其他owner
然后拒绝页面显示。否则,您可能会显示内容。
DataBase mock:
Id Data Path OwnerId AllowAnonymous Status
1 Data-A ~/upload/Data-A 1 False True
代码模拟:
if(AllowAnonymous == True && UserId == OwnerId && Status == True)
// Show data on page
else
// Redirect to deny page
于 2012-10-02T13:37:04.730 回答