asp.net表单认证Global.asax和ajax调用

时间:2011-04-21 14:00:21

标签: asp.net ajax authentication security

我在我当前的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调用的自定义身份验证的好坏

感谢,

1 个答案:

答案 0 :(得分:1)

AJAX回调您的应用程序与使用浏览器访问该站点是一样的,所以这些事件将被触发。

您链接的文章涉及在同一会话中发出多个请求的情况。

  

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

     

访问ASP.NET会话状态是   每次会议独享,这意味着   如果有两个不同的用户   并发请求,访问每个   单独的会话被授予   同时。但是,如果两个   并发请求是为了   同一会话(使用相同的会话   SessionID值),第一个请求   获得对会话的独占访问权限   信息。第二个请求   仅在第一个请求之后执行   完了。

因此,如果您从浏览器中运行的ajax代码向应用程序发出两个请求,它们将一个接一个地执行,而不是并行执行。

无法关闭此功能。

在ASP.NET MVC3中,可以创建无会话控制器,通过使用此属性修改控制器,允许同时为同一会话中的多个ajax请求提供服务:

[SessionState(SessionStateBehavior.Disabled)]