为什么DotNetNuke会在发布ajax请求时将我注销?

Kal*_*exx 5 c# dotnetnuke

以前,当我尝试使用非超级用户帐户(即作为特定于门户网站的用户)对ashx进行ajax调用时,我的Web服务器将返回cookie以清除我的授权.我发布了一个关于此的问题,似乎答案是确保portalid=xx在我的GET参数中指定了.

但是,我刚刚发现,如果我添加portalid=xx一个POST请求,DotNetNuke似乎忽略并注销任何非超级用户帐户.

如何在DNN POST ajax请求期间保留授权?

Jos*_*hua 0

我找到了一些东西供您检查,看看其中是否可以解决您的问题。

  • 确保您使用的是 ScriptManagerProxy。这允许 ascx 页面使用 AJAX,同时父页面也使用 AJAX。
  • 有许多报告称,如果页面状态持久性设置为“内存”,人们将无法使用 DNN 运行 AJAX。遇到此问题的用户可以通过将页面状态持久性切换为“页面”来修复此问题。最简单的方法是运行此查询:

    更新 HostSettings 设置SettingValue ='P'其中SettingName ='PageStatePersister'

运行后,您需要回收该应用程序。如果您无权访问服务器,只需在 web.config 文件中添加空格或回车即可(这将强制应用程序回收)。

  • 最后,您可能会看到 web.config 中是否有这一行。有时删除它会有所帮助:

    <system.web> <xhtmlConformance mode="旧版"/> </system.web>