2016-12-30 25 views
0

对于页面,我可以在显示我的.net Web应用程序的页面之前检查用户是否使用Session进行了日志记录。但是,如果url是文件的链接,我无法确定用户是否已登录,并直接从服务器下载文件。我试图通过Global.asax检查cookie或会话,但没有成功。在授予对asp.net Web应用程序中的文件的访问权限之前,检查cookie或会话

编辑:我不是通过服务器,而是通过会话寻找认证。我有数据库中的用户登录,所以我猜web.config解决方案不适用于此。

在用户可以访问我的服务器上的文件或特定目录(如/ documents)下的任何URL之前,是否可以检查会话或cookie?

示例:对于访问页面/test.aspx,我可以检查会话是否存在,如果不存在,则直接进入登录页面。

对于访问诸如/docs/file.pdf的文件,我无法执行相同的检查。

+0

[如何防止直接访问asp.net中的文件和文件夹?](http://stackoverflow.com/questions/26968328/how-to-prevent-direct-access-to-files-and -folders-in-asp-net) – Xiaoy312

+1

Cookies存储在客户端计算机上,它是一个纯文本文件,非常容易被恶意用户修改;因此Cookie不是安全的地方存储任何安全敏感数据。切勿尝试使用Cookie进行访问控制。 – Sparrow

回答

0

我不确定用户如何在URL中首次获取文件名。也许这就是你需要改变的原因。如果你可以添加一个表并在表中保存一个GUID和文件名,那么url可以传递GUID作为参数。 在服务器端,您可以将GUID映射到实际文件并在返回文件之前验证会话。

+0

文件就像/docs/file.pdf,用户只需要输入我想阻止的浏览器的url。这就是为什么我正在寻找一种解决方案来指导他们在访问URL之前先登录。一个GUID解决方案可能会使其非常复杂。 –

相关问题