我的网站有一个名为uploads的文件夹,里面有一个每个客户端的文件夹。 我的问题是,拒绝用户A查看用户B上传的最佳做法是什么?
答案 0 :(得分: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>
答案 1 :(得分:1)
如果用户无权访问请求的路径,也许可以使用HttpHandler拦截请求并生成403(或任何你想做的事情)。
或者,您可以将逻辑放在BeginRequest方法中的Global.asax中。
答案 2 :(得分:0)
您可以对文件夹使用NTFS权限,强制用户进行身份验证。我在2000年为一个网站做过这个。虽然在这种情况下就像用大炮杀死一只蚊子。
答案 3 :(得分: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