2012-07-19 67 views
0

有人可以帮我解释一下吗?我有一个C#网站应用程序,我想在其中访问网站目录中的文档进行授权。ASP.NET Web应用程序中的授权文件访问

如果文档的用户请求说通过我的网站,http://www.mywebapp.com/documents/test.pdf的链接,在浏览器中打开前检验.pdf PDF,其实我是想验证用户被授权访问基于角色,他得到了PDF格式。我已经在IIS中为文件夹“文档”启用了表单身份验证,如果用户未通过身份验证,则系统将重定向到登录页面。我对这一切都很好,但坚持授权。

我无法在web.config中设置角色,因为它对于不同的用户会有所不同。用户角色存储在该特定用户的httpcookie中。

而且在我的文档文件夹中会有针对不同角色的不同文档。

对称为供应商的角色说test.pdf。所以只有供应商可以访问此pdf

另一个文档form.pdf角色供应商只有角色供应商的用户可以看到这个pdf。

我应该在加载浏览器中的pdf之前写一些处理程序来执行吗? 或者当有人请求时/文件/我应该有一个URL重写执行一个aspx页面来验证授权,如果授权显示页面?

任何人都可以请帮助我了解如何实施此授权。

感谢您的帮助!

感谢, KK

+1

你的标签“autorize.net”不看有关这个问题......我缺少的问题和标签之间的一些隐藏的链接? – 2012-07-20 00:36:36

回答

1

看起来你的问题是“我怎么能在我的网页上检查cookie值,并用正确的文档类型返回一个文件的流时,cookie是OK”。

  • 确保你处理所有的请求(使用MVC比的WinForms做要容易得多,但有可能在以后的太)
  • 读取和验证cookie的
  • 回报文件,如果检查通过,不要忘了设置“content-diposition”和“content-type”标题。再次文件导致MVC更易于使用...如果使用模拟,请确保使用正确的帐户读取文件内容。
+0

谢谢,这有助于! – Krishnakumar 2012-07-20 14:41:32

+0

@Krishnakumar,如果有帮助,接受这个答案并关闭问题。 – 2013-11-21 23:27:11

0

您可以添加以下代码的web.config,并尝试

<location path="documents/test.pdf "> 
     <system.web> 
       <authorization> 
         <allow roles="Vendors"/> 
         <deny users="*"/> 
       </authorization> 
     </system.web> 
</location> 

<location path="documents/form.pdf "> 
     <system.web> 
       <authorization> 
         <allow roles="Role Supplier"/> 
         <deny users="*"/> 
       </authorization> 
     </system.web> 
</location> 
+0

谢谢您的建议 – Krishnakumar 2012-07-20 14:41:20

相关问题