我确定之前已经多次询问过这个问题的变体,但我找不到答案。
我的网站是网上商店。我们有以下登录/帐户管理要求:
Admin角色的成员登录/ Admin Pro角色的成员登录/ Pro 客户角色的成员没有他们登录的特定区域,但在结账时我们希望他们能够登录,这样他们就不必再次填写他们的交付细节。
因此我们希望url结构类似于:
/Checkout.aspx(/登录表单) /Admin/Login.aspx /Pro/Login.aspx(这里唯一的例外是我们希望用户能够在不登录的情况下访问/Pro/Register.aspx页面 - 原因很明显)
如果我从主web.config中删除身份验证配置并在每个pro和admin文件夹中创建了一个web.config文件,我认为这是可能的。在IIS 7中,我将文件夹更改为应用程序,但页面无法访问主站点的主页。
我能以正确的方式解决这个问题吗?
提前致谢。
的Al
答案 0 :(得分:0)
我不知道你为什么需要将文件夹更改为应用程序,但是在每个子目录中创建“sub”web.config文件的策略是实现此目的的一种正确方法。
另一种方法是在每个页面或目录的root web.config中声明权限,如下例所示(来自here):
<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>
答案 1 :(得分:0)
您不应该创建新的应用程序;只需为您的子文件夹包含一个web.config,其授权仅允许您希望能够访问该文件夹的角色。