DotNetOpenAuth.OpenId.RelyingParty.IAuthenticationRequest RedirectToProvider () ThreadAbortException - PullRequest
2 голосов
/ 05 декабря 2011

С DotNetOpenAuth-3.4.7.11121 Я получаю System.Threading. ThreadAbortException при вызове DotNetOpenAuth.OpenId.RelyingParty.IAuthenticationRequest RedirectToProvider (). Мой стек вызовов выглядит как

"в System.Threading.Thread.AbortInternal () \ r \ n в System.Threading.Thread.Abort (Object stateInfo) \ r \ n в System.Web. HttpResponse.End () \ r \ n в DotNetOpenAuth.Messaging.OutgoingWebResponse.Send (контекст HttpContext) в C: \ BuildAgent \ работы \ a02b428f36957bca \ SRC \ DotNetOpenAuth \ Сообщения \ OutgoingWebResponse.cs: линия 161 \ r \ n в DotNetOpenAuth.Messaging.OutgoingWebResponse.Send () в C: \ BuildAgent \ работы \ a02b428f36957bca \ SRC \ DotNetOpenAuth \ Сообщения \ OutgoingWebResponse.cs: линия 131 в DotNetOpenAuth.OpenId.RelyingParty.AuthenticationRequest. RedirectToProvider ()

Что я могу сделать, чтобы предотвратить это?

1 Ответ

3 голосов
/ 06 декабря 2011

Это по замыслу. DotNetOpenAuth вызывает ASP.NET Response.Redirect (), который сам выбрасывает ThreadAbortException для прекращения выполнения на текущей странице. Если вы используете веб-формы, это важно, потому что это мешает ASP.NET или странице писать дополнительный HTML-код после ответного сообщения DNOA, повреждая сообщение.

Если вы находитесь в MVC, вы можете использовать RedirectingResponse.AsActionResult() и вернуть его, чтобы избежать исключения.

...