登录到 Umbraco 6.1 后端不再有效,不断收到错误并重定向回登录.aspx页面



在NOG使用我们umbraco网站的后端几个月后,我再次开始为我们的网站开发。由于该网站被某些人使用,我决定使用暂存环境。所以我移动了我所有的文件,最后也克隆了数据库。

但是现在每当我尝试登录到 umbraco 的后端(在实时和暂存环境中)时,我都会在我的 firebug 控制台中收到一个 javascript 错误:

{"Message":"The user has no umbraco contextid - try logging in","StackTrace":"   at Umbraco.Web.Security.WebSecurity.ValidateCurrentUser(HttpContextBase httpContext, Boolean throwExceptions)rn   at Umbraco.Web.Security.WebSecurity.AuthorizeRequest(HttpContextBase httpContext, Boolean throwExceptions)rn   at Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(Boolean throwExceptions)rn   at Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(String app, Boolean throwExceptions)rn   at umbraco.presentation.webservices.TreeClientService.GetInitAppTreeData(String app, String treeType, Boolean showContextMenu, Boolean isDialog, TreeDialogModes dialogMode, String functionToCall, String nodeKey)","ExceptionType":"System.InvalidOperationException"}

正如其他帖子中所建议的,我删除了我的cookie并重试,但没有运气。

我还不时收到一些其他错误:

uiKeys 未定义

我使用二进制上传了我的 umbraco/config/lang 文件夹,但有时仍然收到错误

视图状态 MAC 验证失败。如果此应用程序由 Web 场或群集承载,请确保配置指定相同的验证密钥和验证算法。自动生成不能在群集中使用。

我把它添加到我的 web.config

<pages enableEventValidation="false" validateRequest="false" viewStateEncryptionMode ="Never" />

错误似乎消失了

在注销页面开头的文档类型声明中,我也遇到了一些关于synthax的错误,我被重定向到该错误

我已经在这里呆了几个小时,似乎无法修复它。

本地登录作品。


编辑

我刚刚重新安装了6.1.6

和6.1.5并尝试登录,但仍然收到错误:http://staging.mydomaimn.com/umbraco/webservices/TreeClientService.asmx/GetInitAppTreeData 500 内部服务器错误:{"Message":"用户没有 umbraco contextid - 尝试登录","StackTrace":" at Umbraco.Web.Security.WebSecurity.ValidateCurrentUser(HttpContextBase httpContext, Boolean throwExceptions)\r at Umbraco.Web.Security.WebSecurity.AuthorizeRequest(HttpContextBase httpContext, Boolean throwExceptions)\r at Umbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(Boolean throwExceptions)\r atUmbraco.Web.WebServices.UmbracoAuthorizedWebService.AuthorizeRequest(String app, Boolean throwExceptions)\r at umbraco.presentation.webservices.TreeClientService.GetInitAppTreeData(String app, String treeType, Boolean showContextMenu, Boolean isDialog, TreeDialogModes dialogMode, String functionToCall, String nodeKey)","ExceptionType":"System.InvalidOperationException"}

这是在以前从未登录过的全新安装上也许问题出在数据库设置上。我的主机使用 MSSQL 2012,我有两个数据库,第一个是称为"myloginname"的实时版本,第二个是称为"myloginname_1"的暂存。将登录名放入数据库时 _1 是否有问题(我读过 Umbraco 确实如此)?


编辑 2

刚刚查看了我的数据库,Umbraco 确实在数据库表"umbracoUserLogins"中创建了一个 contextId,但没有创建应包含相同"UMB_UCONTEXT"的 cookie

所以这可能是我真正的问题,是什么原因造成的?

编辑:关于此的更多信息:当我看小提琴手时,我可以看到这个:在"原始"标签上:

HTTP/1.1 302 找到缓存控制:私有内容类型:文本/html; charset=utf-8 location:/umbraco/set-cookie: ASP.NET_SessionId=ZJLQFOXQ421wmnpeydcbxv1t;路径=/;仅 httponly Set-Cookie: ASP.NET_SessionId=zjlqfoxq421wmnpeydcbxv1t;路径=/; HttpOnly Set-Cookie: UMB_UCONTEXT=694C3[...很多文字...]CFDD5EDB; expires=星期二, 12-Nov-2013 14:07:23 GMT;路径=/;HttpOnly 日期:11 日星期一 十一月 2013 14:07:23 GMT 内容长度: 126

Cookie 选项卡显示:

响应发送了 1318 字节的 Cookie 数据:设置饼干: UMB_UCONTEXT=694C3[...很多文字...]D5EDB;到期=2013 年 11 月 12 日星期二 格林威治标准时间 14:07:23;路径=/;HttpOnly 此响应不包含 P3P 页眉。

因此,我们可以得出结论:

  • 到期时间和日期正确
  • 有一个 302 错误,但这似乎适用于所有 cookie 和另外两个提到的是创建的(我对此感到困惑)
  • 也许 P3P 标头是一个问题?

我能够解决这个问题。没有创建UMB_UCONTEXT cookie的原因是我修复了错误

视图状态 MAC 验证失败。如果此应用程序由 Web 场或群集,请确保配置指定相同的 验证密钥和验证算法。自动生成不能在 一个集群。

错误的方式。正如如何修复:"视图状态 MAC 验证失败"错误 (ASP.NET MVC) 所示,我需要创建一个随机机器密钥并将其添加到我的 web.config

最新更新