如何禁用表单身份验证

时间:2009-09-16 16:57:55

标签: asp.net authentication forms

我的网站上有一个文件夹,我使用基于表单的身份验证进行保护。我现在必须在该文件夹中开发两个新页面,我想在测试和调试新表单时关闭安全性。我已将网站的web.config文件中的身份验证模式更改为mode =“None”,并且已从安全文件夹中删除了web.config文件。我删除了浏览器中的所有Cookie,但是当我从此文件夹中加载页面时,我仍然会重新路由到登录页面。

如何暂时禁用网站中的表单身份验证?

9/25/2009 - 我在root web.config文件中设置了forms authentication =“None”。我已从已实现表单身份验证的两个子文件夹中删除了web.config文件。我清除了缓存并删除了cookie。我仍然被要求登录以查看该文件夹中的页面。我导航到以前从未到过的机器上的页面,并被要求登录。这被缓存在服务器上不会放手的网站的某个地方。

7 个答案:

答案 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>

http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx

答案 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”,并发表评论授权节点