我在我当前的asp.net Web表单应用程序“非MVC”中使用表单身份验证,并想知道是否在每次向服务器发出请求时调用了Global.asax [Application_AuthenticateRequest]和[Application_PostAuthenticateRequest]?我的意思是ajax调用计数Global.asax处理或可能会发生一些错误!因为我在这个链接中发现了冲突:
http://channel9.msdn.com/forums/TechOff/256322-Strangeness-between-ASPNET-AJAX-and-Globalasax/
所以请通过Global.asax
来建议处理ajax调用的自定义身份验证的好坏感谢,
答案 0 :(得分:1)
AJAX回调您的应用程序与使用浏览器访问该站点是一样的,所以这些事件将被触发。
您链接的文章涉及在同一会话中发出多个请求的情况。
http://msdn.microsoft.com/en-us/library/ms178581.aspx
访问ASP.NET会话状态是 每次会议独享,这意味着 如果有两个不同的用户 并发请求,访问每个 单独的会话被授予 同时。但是,如果两个 并发请求是为了 同一会话(使用相同的会话 SessionID值),第一个请求 获得对会话的独占访问权限 信息。第二个请求 仅在第一个请求之后执行 完了。
因此,如果您从浏览器中运行的ajax代码向应用程序发出两个请求,它们将一个接一个地执行,而不是并行执行。
无法关闭此功能。
在ASP.NET MVC3中,可以创建无会话控制器,通过使用此属性修改控制器,允许同时为同一会话中的多个ajax请求提供服务:
[SessionState(SessionStateBehavior.Disabled)]