Tim*_*ung 2 asp.net asp.net-membership login
根据用户所在的文件夹将用户重定向到登录页面.我有一个带有根目录的Web应用程序,供所有用户和管理站点使用.
对于需要网站的经过身份验证的功能的用户,他们需要登录并重定向到root/login.aspx.但是,当管理员需要登录到站点的root/admin /部分时,我希望将它们重定向到root/admin/login.aspx上的登录表单
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我在root/admin目录中有这个文件.我尝试添加以下行,但它给出了一个错误.
<authentication>
<forms defaultUrl="default.aspx" loginUrl="default.aspx"></forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)
基本上我试图覆盖主应用程序中存在的defaulturl和loginurl.
您需要<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>
Run Code Online (Sandbox Code Playgroud)
对于集中管理,可以在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>
Run Code Online (Sandbox Code Playgroud)
用户可以属于多个角色.例如,如果您的站点是讨论论坛,则某些用户可能同时担任成员和主持人.您可以将每个角色定义为在站点上具有不同的权限,并且同时具有这两个角色的用户将具有这两组权限.
如果要以编程方式操作角色/身份验证,则可以在代码级别访问所有这些元素
Page.User.Identity.Name
Page.User.Identity.IsAuthenticated
Page.User.Identity.AuthenticationType
Page.User.IsInRole("string");
Run Code Online (Sandbox Code Playgroud)
教程
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |