2011-06-15 92 views
2

我在我的网站上有一个链接。每当用户点击这个链接时,就会下载一个pdf文件在这个动作上。 但是,如果用户知道文件链接他/她直接在浏览器中添加文件的地址,并且可以下载文件,则会出现问题。 我想通过在浏览器地址栏中输入文件url来直接下载它。 对此的任何建议都很好。在asp.net中下载文件

问候

·赛义德

回答

0

好,

  • 可以使用令牌(这个 '令牌' 被保存在一个输入类型= '隐藏' 的名字= '令牌' 值=” HTML元素的标记值”,以后使用)
  • 检查,如果引用者是你的表单页面

'标记',你检查开始下载PDF文件的小时。

我不能在asp.net中做到这一点,但你可以看看ASP.net。

简单的例子代码:

<? 
$token = $_SESSION['token'] = md5(uniqid()); 
echo "<form method='POST' action=""><input type='hidden' name='token' value='$token'> 
     <input type='submit' value='Go!'>"; 

if($_POST["token"] == $token) { 
    //show link pdf file 
}else { 
    die('Access denied'); 
} 

?> 

我没有说什么,这是总的安全,说是一个另类。

0

将文件放在网站文件夹中的一个文件夹中,并使用表单身份验证和位置属性将身份验证从web.config设置为此文件夹。用户需要登录才能下载PDF。

<authentication mode="Forms"> 
      <forms defaultUrl="Default.aspx" loginUrl="~/adminlogin.aspx" slidingExpiration="true" timeout="30"></forms> 
     </authentication> 

     <location path="[PDF Folder]"> 
     <system.web> 
      <authorization> 
       <allow roles="[role]"/> 
       <deny users="*"/> 
      </authorization> 
     </system.web> 
    </location> 

This is only sample Get more details about above from net.