C# ASP.NET如何访问应用程序请求模块中已验证的User.Identity.i?

C# ASP.NET如何访问应用程序请求模块中已验证的User.Identity.i?,c#,asp.net,c#-2.0,asp.net-2.0,form-authentication,C#,Asp.net,C# 2.0,Asp.net 2.0,Form Authentication,我在ASP.Net中使用表单身份验证方法,问题是它只保护“.aspx”文件。我试图保护“kcfinder”文件夹中的“.php”文件不受未经身份验证的用户的攻击 我在“App_Code”文件夹中实现了这个类 问题是它总是在HttpContext.Current.User.Identity.IsAuthenticated上说“对象引用未设置为对象的实例”。我试图将其更改为Application.Context.User.Identity.IsAuthenticated,但仍然显示相同的错误 是否有

我在ASP.Net中使用表单身份验证方法,问题是它只保护“.aspx”文件。我试图保护“kcfinder”文件夹中的“.php”文件不受未经身份验证的用户的攻击

我在“App_Code”文件夹中实现了这个类

问题是它总是在
HttpContext.Current.User.Identity.IsAuthenticated
上说“对象引用未设置为对象的实例”。我试图将其更改为
Application.Context.User.Identity.IsAuthenticated
,但仍然显示相同的错误

是否有任何方法可以访问此自定义模块的处理功能中的用户对象?

将PostAuthenticateRequest的事件处理程序添加到HttpModule中,并从中调用流程(HttpApplication)方法

public class AuthModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.PostAuthenticateRequest += new EventHandler(context_PostAuthenticateRequest);
    }

    public void Dispose() { }

    void context_PostAuthenticateRequest(object sender, EventArgs e)
    {
        var isAuthenticated = ((HttpApplication) sender).Context.User.Identity.IsAuthenticated;
    }
}

将以下内容添加到web.config文件:

<modules runAllManagedModulesForAllRequests="true" />


免责声明-我没有在IIS下运行PHP的经验。但是,IIS有某些类型配置为由Asp.Net处理,我不希望php由Asp.Net处理,因此上下文为null。上下文不为null。上下文对象的请求和响应都在工作。只有Request.User为null。那么Request.IsAuthenticated返回什么-true/false?您是否启用了匿名访问?此外,我还建议:runAllManagedModulesForAllRequests=“true”Request.IsAuthenticated始终返回false。我刚刚在ASP.NET论坛上读到了这个帖子。对添加“”允许我访问Application.Context.User.Identity.IsAuthenticated。你能把你的答案贴在下面吗?这样我就可以接受了?干杯。哦,不。我不确定它是否允许我访问该对象,但在添加该属性后,我的表单身份验证正在保护kcfinder文件夹。这是我想要的,甚至是比由HttpHandler处理更好的解决方案。谢谢。它仍然显示“对象引用未设置为对象的实例”。在“bool isAuthenticated=((HttpApplication)sender.Context.User.Identity.isAuthenticated”上,奇怪的是,什么是NULL?上下文。用户?它应该在ASP.NET生命周期的那一点上定义。我发现Google Chrome有一个有趣的地方。如果请求文件是.aspx,它看起来很好,并重定向到登录页面,但当它是.pdf或.jpg时,它会像无限循环一样不断尝试,但它仍然在保护资源。它在除谷歌浏览器外的所有其他浏览器上都能正常工作。
<modules runAllManagedModulesForAllRequests="true" />