Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 避免身份验证_Asp.net_Forms Authentication - Fatal编程技术网

Asp.net 避免身份验证

Asp.net 避免身份验证,asp.net,forms-authentication,Asp.net,Forms Authentication,嗨,斯塔克兄弟。。。我有一个使用表单身份验证的ASP.NET 3.5应用程序。我想请求一个页面,该页面仅对经过身份验证的用户可用,但在某些情况下能够向未经身份验证的用户显示。我的问题是,在页面生命周期的哪一点上,我需要告诉ASP.NET可以显示页面,以及如何告诉它这样做 我试过了,但没有用: void Application_AuthenticateRequest(Object sender, EventArgs e) { HttpContext.Current.SkipAuthoriz

嗨,斯塔克兄弟。。。我有一个使用表单身份验证的ASP.NET 3.5应用程序。我想请求一个页面,该页面仅对经过身份验证的用户可用,但在某些情况下能够向未经身份验证的用户显示。我的问题是,在页面生命周期的哪一点上,我需要告诉ASP.NET可以显示页面,以及如何告诉它这样做

我试过了,但没有用:

void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    HttpContext.Current.SkipAuthorization = true;
}

当然,上面的示例仅用于页面加载的测试目的,为什么不使用:

 if (Page.User.Identity.IsAuthenticated){
      //your code for logged in users.
 } else {

    // if not logged in.
 }

并将页面放在一个不安全的目录中。

我不知道你所说的“尝试无效”是什么意思。到底发生了什么?如果您正在使用
BeginRequest
AuthenticateRequest
中的方法操作当前HTTP上下文以跳过授权(在
AuthenticateRequest
之前发生的仅有两个请求管道事件),它将绕过
web.config
文件中允许或拒绝用户的任何授权设置


您目前是如何授权您对相关页面的请求的?

我自己避免直接干扰身份验证模型。你能将表单的第二个副本放在一个不安全的目录中吗?因为ASP.NET将该页面设置为不允许匿名用户,我们希望继续这样使用它。我所说的“尝试无效”是指它不起作用。它不断地将我重定向到登录页面。我将尝试使用BeginRequest事件OK,结果发现我们的基类正在进行一些检查并重定向到Login.aspx。问题不是ASP.NET,我上面提供的代码工作得很好。我在BeginRequest和AuthenticateRequest中都试过了,它们都有效。谢谢你的帮助