asp.net - 阻止 AJAX 计时器控制请求扩展 FormsAuthentication 票证?

标签 asp.net ajax asp.net-ajax timer forms-authentication

我有一个 Web 表单应用程序,它使用一些 ASP.NET AJAX 计时器控件(即轮询)。如果用户位于具有其中之一的页面上,他们实际上永远不会超时,因为轮询过程使他们的身份验证票证保持事件状态。

我想对 Timer 控件进行分段,以便它们不会触发 Forms Authentication 的 RenewTicketIfOld 方法。我所采用的路径和我之前做过的类似操作是将某些内容注入(inject)到 AJAX HTTP 请求中,以将这些请求识别为来自计时器,然后在隐藏身份验证 cookie 的表单例份验证模块之后运行一些代码以免在响应中发回。

关于如何防止 Timer 控件保持表单例份验证票证事件的任何其他建议?

最佳答案

我的第一个技巧。

在网络配置中,设置域名,例如 www.yoursite.com

<forms domain="www.yoursite.com" .... >

并创建一个子域,例如timers.yoursite.com,它实际上与www.yoursite.com相同。 现在在 times.yoursite.com 上调用电话,并且由于 Cookie 必须找到 www.yoursite.com,因此它们永远不会触发身份验证。

第二个肮脏伎俩

在网络配置中设置 requireSSL=true

<forms requireSSL="true" 

并在非安全页面上进行计时器调用。这样,身份验证就不会再次触发,因为现在在非安全页面上不会读取 cookie。

最后的想法是,在无 cookie 页面和无 session 页面上运行时间,我的意思是根本不发送或获取 cookie 的页面。我不知道这在同一个域名页面下是否可行,我认为你需要一个不同的域名(out)

关于asp.net - 阻止 AJAX 计时器控制请求扩展 FormsAuthentication 票证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589755/

相关文章:

asp.net - 为什么使用 Azure 云服务项目而不是带有 Azure SDK 的 ASP.NET 项目?

c# - Silverlight:命名空间中不存在 Web

php - 我正在开发一个将信息提交到数据库的 AJAX 表单。当到达插入函数时它会记录错误

ajax - 是否可以使用 Ajax 在同一页面中进行 Webmatrix CRUD

jquery - .NET 4.5 中 MSAjax 和 WebFormsJS 的文档在哪里?

asp.net - 我怎样才能有一个 ascx 回发并每隔 X 秒自动刷新一次?

.net - 如何将 'open web site from folder'转换为基于csproj的 'ASP.NET Web Application'项目

javascript - 从所有signalr js文件生成一个js文件

javascript - 将事件处理程序绑定(bind)到动态生成的 div 的问题

c# - 如何使用 Ajax.BeginForm 更新 div 并执行 javascript 函数?