限制对 doc 文件的访问 asp.net
我的 ASP.NET 应用程序中有一个文件夹,其中包含只能由某种类型的连接用户(管理员帐户或允许的其他帐户)访问(下载)的文档文件,我
该怎么做?
有什么想法吗?
提前致谢。
i have a folder in my asp.net app conatining doc files that can be accessed only (dowwload) by a certain type of connected users(admin account or permitted other accounts)
how can i do that?
any ideas?
thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
.NET 中的 App_Data 文件夹受到保护,因此非常适合此目的。我通常将敏感文件放在这里,然后有一个页面“ViewDoc.aspx”执行安全检查,然后将文件发送给用户(使用 Response.Write)。
The App_Data folder in .NET is protected, and therefore ideal for this very purpose. I normally put sensitive files in here then have a page "ViewDoc.aspx" that performs the security checks and then sends the file to the user (using Response.Write).
将敏感文件放在网站根目录之外,这样就无法通过 URL 访问它们。
之后,使用此
HttpHandler
(用 VB.NET 编写)来提供文件:并在 web.config 中注册此处理程序,如下所示:像
这样使用:
记住添加您的处理程序的文件类型并根据文件类型更改
response.contenttype
。使用处理程序不是唯一的方法,您可以在 aspx 文件中使用
context.Response.TransmitFile(fileInfo.FullName)
。Put sensitive files outside of web site root, so they can not be accessed by URL.
After that, use this
HttpHandler
(written in VB.NET) to serve files:and register this handler in your web.config like this:
use like this:
Remember adding your file types to handler and change
response.contenttype
by type of your file.Using a handler is not the only way, you can use
context.Response.TransmitFile(fileInfo.FullName)
in your aspx file.执行此操作的一个简单方法是,不要将这些文档放在 ASP.NET 应用程序的文件夹中,而是将其放在文件系统中无法直接从浏览器访问的其他位置。然后,您可以通过编程方式将文件提供给用户(如果他/她获得授权)。
A simple way to do this is to NOT put these documents inside a folder of your ASP.NET app and instead, put it somewhere else in the file system that can't be accessed directly from the browser. Then programmatically, you can serve the file to the user if s/he's authorized to do so.