Asp.net 避免身份验证
嗨,斯塔克兄弟。。。我有一个使用表单身份验证的ASP.NET 3.5应用程序。我想请求一个页面,该页面仅对经过身份验证的用户可用,但在某些情况下能够向未经身份验证的用户显示。我的问题是,在页面生命周期的哪一点上,我需要告诉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
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中都试过了,它们都有效。谢谢你的帮助