我的网站上有一个文件夹,我使用基于表单的身份验证进行保护。我现在必须在该文件夹中开发两个新页面,我想在测试和调试新表单时关闭安全性。我已将网站的web.config文件中的身份验证模式更改为mode =“None”,并且已从安全文件夹中删除了web.config文件。我删除了浏览器中的所有Cookie,但是当我从此文件夹中加载页面时,我仍然会重新路由到登录页面。
如何暂时禁用网站中的表单身份验证?
9/25/2009 - 我在root web.config文件中设置了forms authentication =“None”。我已从已实现表单身份验证的两个子文件夹中删除了web.config文件。我清除了缓存并删除了cookie。我仍然被要求登录以查看该文件夹中的页面。我导航到以前从未到过的机器上的页面,并被要求登录。这被缓存在服务器上不会放手的网站的某个地方。
答案 0 :(得分:6)
尝试将以下信息添加到您的web.config中。这将从所需的授权中删除路径中的项目。
<location path="XXXXXXXXX">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
答案 1 :(得分:2)
您可以使用该安全目录的web.config中的位置标记来覆盖这些页面的安全性:
<location path="secureddir/newform.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
答案 2 :(得分:1)
您可能有一个调用FormsAuthentication.RedirectToLoginPage()的页面(或基类或母版页);
答案 3 :(得分:1)
我想在调试时能够在整个应用程序中禁用身份验证,因此我执行了以下操作:
1)创建了这个类。
namespace System.Web.Mvc
{
public class SwitchableAuthorizeAttribute : AuthorizeAttribute
{
public static bool Enabled = true;
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (Enabled)
{
base.OnAuthorization(filterContext);
}
}
}
}
2)在整个应用程序中用 [SwitchableAuthorize] 替换 [授权] 属性。
3)在需要时关闭授权。例如,我将以下内容添加到App_Start / AuthConfig.cs:
public static class AuthConfig
{
public static void RegisterAuth()
{
#if DEBUG
SwitchableAuthorizeAttribute = false;
#endif
...
}
}
您可能有DEBUG以外的条件。这种方法允许您随时以编程方式打开/关闭授权。
如果您的网页需要登录用户信息,可以通过执行一些虚假登录而不是简单地跳过base.OnAuthorization()来增强此方法。
答案 4 :(得分:0)
将authenticode转为none应该这样做。必须有一些你遗漏的东西,你确定你正在浏览你更新的部署代码吗?
答案 5 :(得分:0)
我之前遇到过这个问题 - 这可能与你无关,但我会提到它是一个内存中的cookie导致我的身份验证表单不断出现。我通过尝试使用其他浏览器,即FF,Chrome而非IE来发现。
答案 6 :(得分:0)
尝试从身份验证节点中删除 mode =“XXXX”,并发表评论授权节点