您需要<location>
在 web.config 中使用该元素。您可以使用<location>
标签将授权设置应用于单个文件或目录。
<location path="/root">
<system.web>
<authentication mode="Forms" >
<forms name="LoginForm" defaultUrl="default.aspx"
loginUrl="/root/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="/root/admin">
<system.web>
<authentication mode="Forms" >
<forms name="formName" defaultUrl="login.aspx"
loginUrl="/root/admin/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
MSDN
对于集中管理,可以在 Machine.config 文件中应用设置。Machine.config 文件中的设置定义机器范围的策略,也可用于使用<location>
元素应用特定于应用程序的配置。开发人员可以提供应用程序配置文件来覆盖机器策略的各个方面。对于 ASP.NET Web 应用程序,Web.config 文件位于应用程序的虚拟根目录中,也可以在虚拟根目录下的子目录中。
如果您想要 1 个登录位置和不同的访问级别,您可能需要使用角色。
<location path="/root">
<system.web>
<authorization>
<allow roles="admin,root" />/*admin, root is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
<location path="/root/admin">
<system.web>
<authorization>
<allow roles="admin" />/*admin is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
用户可以属于多个角色。例如,如果您的站点是一个讨论论坛,则某些用户可能同时担任成员和版主的角色。您可以将每个角色定义为在站点上具有不同的权限,并且同时担任这两个角色的用户将拥有两组权限。
如果您想以编程方式操作角色/身份验证,您可以在代码级别访问所有这些元素
Page.User.Identity.Name
Page.User.Identity.IsAuthenticated
Page.User.Identity.AuthenticationType
Page.User.IsInRole("string");
教程
来自 Rolla 教程的 4 个人
揭秘 ASP.NET web.config 文件