我有以下代码: 我的目标是,只有当用户尝试转到 Register.aspx 页面时,才需要使用 Admin.aspx 页面对其进行身份验证。 我收到以下消息;
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。如果虚拟目录未配置为IIS中的应用程序,则可能导致此错误。
我做错了吗?
<location path="Report.aspx">
<system.web>
<authentication mode="Forms">
<forms loginUrl="Admin.aspx" >
<credentials passwordFormat="Clear">
<user name="John" password="pass@432"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
答案 0 :(得分:1)
您的应用程序可能位于您网站下的某个文件夹中,作为该网站的一部分,而不是其自身的应用程序。
对于IIS 6.1:进入IIS,右键单击应用程序根文件夹,然后选择转换为应用程序。
试一试,看看它是否有帮助。
如果这不起作用......
检查您是否将您的身份验证配置放在根web.config文件中,而不是放在较低的文件夹中。 (例如,如果使用MVC,则位于MVC视图文件夹中的那个)。
虽然与你的问题没有关系,但正如别人说你拒绝所有问题。要拒绝未经身份验证的用户访问该页面,请使用问号而不是asterix。
<location path="foo.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>