如何防止未经身份验证的用户下载文件

问题描述 投票:0回答:4

我有一个网站,用户使用表单身份验证登录,并有一个文件夹路径,我不希望任何未经身份验证的用户(未登录的用户)从中下载文件。 我怎样才能实现这个?

谢谢,

萨钦

c# authentication iis formsauthentication
4个回答
3
投票

您可以通过配置来完成此操作,请参阅http://msdn.microsoft.com/en-us/library/8d82143t.aspx

<location path="Files">
   <system.web>
     <authorization>
       <deny users="?"/>
     </authorization>
   </system.web>
</location>

0
投票

您可以创建下载功能(在服务器端),您将在其中检查当前登录信息,然后向可访问的人员发送文件路径。

在这里你可以看到另一种方式get-files-if-login


0
投票

将文件放置在授权的文件夹中。这样,如果未经授权的用户访问该文件夹。他们将被重定向到登录页面以获得授权。


0
投票
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>
© www.soinside.com 2019 - 2024. All rights reserved.