我有一个受 ASP.NET 表单例份验证保护的 Web 应用程序。该站点使用 jQuery 的 $.ajax() 功能来调用同一应用程序中的 Web 服务。
浏览 Web 服务 .asmx 确实会导致表单例份验证启动,一旦经过身份验证并对服务器进行 $.ajax() 调用,我还会看到 ASP.NET session cookie 和表单例份验证 cookie 被发回Fiddler 中的服务器。
所以...虽然一切看起来都很好,但我想放心,当使用以下方式从 Web 应用程序中的任何页面调用时,Web 服务确实将受到 ASP.NET 表单例份验证的保护$.ajax()。
最佳答案
从服务器的角度来看,ajax 请求与普通的 GET/POST 请求没有太大区别 - 只是在请求中添加了一些额外的 header 。它会通过您的正常身份验证例程,与任何其他请求相同 - 如果情况并非如此,您应该更加担心应用程序的整体安全性,因为知道自己在做什么的人可以很容易地伪造请求.
您可以轻松设置测试来查看需要身份验证的资源是否成功阻止 Ajax 到达的未经授权的请求。这应该会让你放心。
关于asp.net - jQuery 的 $.ajax() 函数是否正确处理 ASP.NET 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/297794/