14

我将如何为我的网络应用程序的不同部分设置不同的身份验证标签?说我有:

/
/folder1/
/folder2/

是否可以<authentication/>为每个文件夹指定不同的标签?

我希望 folder1 使用 Windows 身份验证,但 folder2 使用 Forms 身份验证。

我尝试在<location/>标签中进行操作,但看起来您不能在<authentication/>标签中添加<location/>标签,至少不能通过内置网络服务器的 VS 2008。

这个错误说 - 错误 3 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

<location path="/folder1">
    <system.web>
      <authentication mode="Forms" />
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
4

3 回答 3

11

你只能<authentication />在顶层拥有web.config。您可能必须创建多个应用程序。即您可以在一个应用程序中创建一个应用程序,并在每个应用程序中使用不同的身份验证模式。

于 2008-11-26T10:36:43.387 回答
1

我认为您可以将 folder1 上的表单身份验证授权设置为

<allow users="*" />

然后通过在文件夹上设置 Windows 权限来控制 Windows 访问。

我还没有尝试过,但我想不出为什么那行不通。

于 2008-11-25T21:57:13.280 回答
1

这些设置仅在 ASP.Net 应用程序的根级别有效。要在子文件夹中使用不同的设置,您需要进入 IIS 并将该子文件夹设置为新应用程序。

完成此操作后,该文件夹将在 IIs 管理器中具有不同的图标。在您的子文件夹中,创建一个新的 web.config 文件并在其中添加新的身份验证设置。

更多信息可在创建应用程序中找到。

于 2008-11-26T10:34:06.467 回答