通过Forms身份验证设置不同页面的访问权限

 使用Forms身份验证的时候,如果允许注册页面可以匿名用户访问,其他所有页面只允许注册用户访问,我们可以如下设置web.config文件来达到上述的效果:

 

 

1.在“system.web”节点下,添加登录验证需要的一些条件,如下所示。

 

 

 

         <authentication mode="Forms">

                 <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" protection="All"/>

          </authentication>

          <authorization>

                <deny users="?"/>

                <allow users="*"/>

           </authorization>

2.由于注册界面不需要登录,所以还需要单独配置,在“configuration”节点下,添加如下代码:

 

 

 

         <location path="Register.aspx">

                   <system.web>

                            <authorization>

                                     <allow users="*"/>

                            </authorization>

                   </system.web>

         </location>

 

 

 

 

 

 

 

 

 

 

 

 

<?xml version="1.0"?>

<!--

    注意: 除了手动编辑此文件以外,您还可以使用

    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的

     “网站”->Asp.Net 配置”选项。

    设置和注释的完整列表在

    machine.config.comments 中,该文件通常位于

    WindowsMicrosoft.NetFrameworkv2.xConfig

-->

<configuration>

       <appSettings/>

       <connectionStrings>

  <add name="BookShopConnectionString" connectionString="Data Source=CGJSQLEXPRESS;Initial Catalog=BookShop;Integrated Security=True"

   providerName="System.Data.SqlClient" />

 </connectionStrings>

       <system.web>

              <!--

            设置 compilation debug="true" 将调试符号插入

            已编译的页面中。但由于这会

            影响性能,因此只在开发过程中将此值

            设置为 true

        -->

              <compilation debug="true"/>

              <!--

            通过 <authentication> 节可以配置 ASP.NET 使用的

            安全身份验证模式,

            以标识传入的用户。

        -->

    <authorization>

      <deny users="?"/>

      <allow users="*"/>

    </authorization>

    <authentication mode="Forms">

      <forms name=".ASPXAUTH" loginUrl="Login.aspx" protection="All" timeout="60"  />

    </authentication>

    <!--

            如果在执行请求的过程中出现未处理的错误,

            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,

            开发人员通过该节可以配置

            要显示的 html 错误页

            以代替错误堆栈跟踪。

 

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

        -->

    <profile>

      <providers>

        <add name="ShoppingCartProvider"  type="BookShopProfileProvider" applicationName="BookShop"/>

        <add name="AccountInfoProvider"   type="BookShopProfileProvider" applicationName="BookShop"/>

      </providers>

        <properties>

        <add name="ShoppingCart" type="CartItem" provider="ShoppingCartProvider" />

        <add name="AccountInfo" type="AddressInfo"  provider="AccountInfoProvider"/>

      </properties>

    </profile>

       </system.web>

  <location path="RegisterPage.aspx">

    <system.web>

      <authorization>

        <allow users="*"/>

      </authorization>

    </system.web>

  </location>

  <location path="Manager.aspx">

    <system.web>

      <authorization>

        <allow users="admin"/>

        <deny users="*"/>

      </authorization>

    </system.web>

  </location>

</configuration>

原文地址:https://www.cnblogs.com/lyl6796910/p/3536309.html