首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从一个页面导航到另一个页面时,登录用户

问当从一个页面导航到另一个页面时,登录用户
EN

Stack Overflow用户
提问于 2013-12-30 20:50:42
回答 1查看 1.4K关注 0票数 1

我已经设置了健康监测,我收到了下面的错误。

在Safari浏览器中,我正在接收下面的Signalr错误,在其他浏览器中没有收到此错误。

奇怪的是,当我从一个页面导航到另一个页面时,这个错误实际上将注销用户,并将他们发送到登录页,这是在他们登录之后。

有人知道为什么会发生这种事吗?

代码语言:javascript
复制
    ** Application Information **
---------------
Application domain: /LM/W3SVC/15/ROOT-1-130329090058437500
Trust level: Full
Application Virtual Path: /
Application Path: C:\inetpub\wwwroot\alumcloud.com\ Machine name: AFBS-WEB1


** Events **
---------------
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 12/30/2013 2:32:24 PM
Event time (UTC): 12/30/2013 8:32:24 PM
Event ID: a243cb6cf5e24be8bfa0d1bec6e77812 Event sequence: 211 Event occurrence: 2 Event detail code: 0

Process information:
    Process ID: 924
    Process name: w3wp.exe
    Account name: NT AUTHORITY\NETWORK SERVICE

Exception information:
    Exception type: System.InvalidOperationException
    Exception message: Unrecognized user identity.  The user identity cannot change during an active SignalR connection.

Request information:
    Request URL: http://www.alumcloud.com/signalr/abort?transport=serverSentEvents&connectionToken=xHLBS1B7LGOjUWkVos29QlnBuMwBfTg%2BNQuEDmrhy%2BADr45Yw0iDIHCh1nX8omumVA%2F1eFje774jLVE%2BOId8ab4cJJ3r1hZ8DGlq23yA0WsGk0biYy7JYmnxM2hqu2cw&connectionData=%5B%7B%22name%22%3A%22alumchathub%22%7D%5D
    Request path: /signalr/abort
    User host address: 71.244.XXX.XXX
    User: XXXXXXXXXXXX
    Is authenticated: True
    Authentication Type: Forms
    Thread account name: NT AUTHORITY\NETWORK SERVICE

Thread information:
    Thread ID: 22
    Thread account name: NT AUTHORITY\NETWORK SERVICE
    Is impersonating: False
    Stack trace:    at Microsoft.AspNet.SignalR.PersistentConnection.GetConnectionId(HostContext context, String connectionToken)
   at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext context)
   at Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext context)
   at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 environment)
   at Microsoft.Owin.Mapping.MapMiddleware.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar)
   at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-31 00:52:17

由于向/signalr/abort?.发出了请求,所以似乎已经调用了connection.stop。这可能是因为您直接调用了connection.stop,或者是因为SignalR间接地为您调用了connection.stop,因为用户使用SignalR连接从页面导航。

异常消息(“无法识别的用户标识。在活动SignalR连接期间用户标识不能更改”)。指示用户的IIdentity在启动和停止SignalR连接之间发生了更改。

这种情况可能有多种原因,其中最常见的原因可能是ASP.NET窗体auth过期,导致用户身份未经身份验证。其他原因可能是SignalR连接正在进行时用户注销、登录或切换用户。

SignalR不允许用户在持续连接期间更改IIdentity,以帮助防止CSRF攻击。

对/signalr/abort的请求?是由SignalR客户端发出的Ajax请求。SignalR客户端不会根据中止请求的响应采取任何操作,因此我不会期望失败的中止会导致任何类型的重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20847336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档