c#只对任何用户的子目录进行身份验证

本文关键字:子目录 身份验证 用户 任何 | 更新日期: 2023-09-27 17:53:47

请注意,这是我之前的问题的一个小变化。

我正在使用c# .NET Web Forms 4.0

我有一个像下面这样的文件夹,我需要密码保护,所以任何人(任何外部用户也可以查看网站)想要查看页面需要首先输入用户名,密码(我们告诉他们),以便查看页面。

的例子:

    www.abc.com/srlv/

所以在srlv下我有需要密码保护的网页。

注意,只有当用户访问/srlv/

下的文件时,我们才需要进行身份验证

注意这些是。html文件,而不是。aspx文件。

      www.abc.com/srlv/index.html, www.abc.com/srlv/about.html

但是如果用户输入www.abc.com它将允许他们在没有任何身份验证的情况下查看网站

我正在考虑使用以下内容:

    <authenticaton mode="Forms">
    <forms loginUrl="/srcs/login.aspx" timeout="30" defaultUrl="/srlv/index.aspx" cookieless="UseUri">
    <credentials passwordFormat="Clear">
    <user name="Usw" password="pass123"/>
    </credentials>
   </forms>
   </authentication>

但是我怎么说认证只有当你去

中的任何文件时
    www.abc.com/srlv/

c#只对任何用户的子目录进行身份验证

你可以在web中使用location元素。配置为您的网站的部分配置权限

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

您需要在目标文件夹中创建一个web.config文件,其内容如下。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <authorization>
          <allow users="Usw"/>
          <deny users ="*,?" />
        </authorization>
    </system.web>
</configuration>

它简单地说,允许用户Usw,但拒绝其他用户

位置可以帮你…

http://support.microsoft.com/kb/316871

简单地访问所有未经授权的用户,只阻止特定的文件夹。

<configuration>
    <system.web>
        <authentication mode="Forms" >
            <forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
            </forms>
        </authentication>
<!-- This section denies access to all files in this application except for those that you have not explicitly specified by using another setting. -->
        <authorization>
            <deny users="?" /> 
        </authorization>
    </system.web>
<!-- This section gives the unauthenticated user access to the Default1.aspx page only. It is located in the same folder as this configuration file. -->
        <location path="default1.aspx">
        <system.web>
        <authorization>
            <allow users ="*" />
        </authorization>
        </system.web>
        </location>
<!-- This section gives the unauthenticated user access to all of the files that are stored in the Subdir1 folder.  -->
        <location path="subdir1">
        <system.web>
        <authorization>
            <allow users ="*" />
        </authorization>
        </system.web>
        </location>
</configuration>