如何在两个不同的文件夹中应用asp.net授权?

时间:2011-02-18 16:08:07

标签: asp.net web-config forms-authentication

enter image description here

我的asp.net网站上有两个文件夹,即VENDORS和ADMIN

我希望当任何用户访问ADMIN文件夹中的任何页面时,它会重定向到Admin / login.aspx,直到他们登录....

我希望当任何用户访问VENDORS文件夹中的任何页面时,它会重定向到Vendors / login.aspx,直到他们登录....

如何使用web.config授权....

2 个答案:

答案 0 :(得分:5)

您需要分别在admin和vendors文件夹中包含web.config文件。在这些web.config文件中,您将独立声明<formsauthentication>个元素。全局web.config不应包含<formsauthentication>元素。

修改
我将在下面提供一个xml片段,但实现FormsAuthentication并不是我推荐给初学者的任务。首先,您应该阅读并理解实现至少basic FormsAuthentication model所涉及的过程。话虽这么说,这将是<system.web>部分下的相关web.config条目:

<authentication mode="Forms">
    <forms loginUrl="~/vendors/login.aspx" 
           protection="All" 
           timeout="30" 
           name=".ASPXAUTH" 
           requireSSL="false" 
           slidingExpiration="false" 
           defaultUrl="~/vendors/default.aspx" 
           cookieless="UseDeviceProfile"/>
</authentication>

答案 1 :(得分:2)

除非供应商和管理员站点完全不相关,否则我建议使用单一的身份验证体系结构。在根级别创建一个登录页面,然后使用<location>元素定义角色授权(或在每个子文件夹中单独的web.config个文件)。管理员是否必须登录/admin/login.aspx并且供应商登录/vendors/login.aspx