我有一个网站,用户使用表单身份验证登录,并有一个文件夹路径,我不希望任何未经身份验证的用户(未登录的用户)从中下载文件。 我怎样才能实现这个?
谢谢,
萨钦
您可以通过配置来完成此操作,请参阅http://msdn.microsoft.com/en-us/library/8d82143t.aspx
<location path="Files">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
您可以创建下载功能(在服务器端),您将在其中检查当前登录信息,然后向可访问的人员发送文件路径。
在这里你可以看到另一种方式get-files-if-login
将文件放置在授权的文件夹中。这样,如果未经授权的用户访问该文件夹。他们将被重定向到登录页面以获得授权。
Use the following code in Web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Default.aspx" name=".ASPXFORMAUTH" protection="All" path="/" timeout="30" />
</authentication>
<authorization>
<deny users="?" />
<!-- Deny anonymous users -->
</authorization>
</system.web>
<location path="downloads">
<system.web>
<authorization>
<deny users="?" />
<!-- Deny anonymous users access to the Files folder -->
</authorization>
</system.web>
</location>
<!--<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="no-cache, no-store, must-revalidate" />
<add name="Pragma" value="no-cache" />
<add name="Expires" value="0" />
</customHeaders>
</httpProtocol>
</system.webServer>-->
<system.webServer>
<modules>
<add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<remove name="DefaultAuthentication" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
</modules>
</system.webServer>
</configuration>