此問題全網找了很久,也困擾了我很久,始終沒有找到解決方法。今天結合網上其他問題的帖子,自己研究的半天,終於找到了這個解決方法,經親自測試可行。歡迎大牛指導指正。 有時客戶收藏的系統地址是認證端的,然後登錄之後會轉向https://***:101/signin-oidc 報以下錯誤 An unhand ...
此問題全網找了很久,也困擾了我很久,始終沒有找到解決方法。今天結合網上其他問題的帖子,自己研究的半天,終於找到了這個解決方法,經親自測試可行。歡迎大牛指導指正。
有時客戶收藏的系統地址是認證端的,然後登錄之後會轉向https://***:101/signin-oidc 報以下錯誤
An unhandled exception occurred while processing the request.
Exception: Correlation failed.Unknown location
Exception: An error was encountered while handling the remote login.Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
解決的原理就是,當遠程認證錯誤時,轉向最開始的系統首頁。
解決方法
1 services.AddAuthentication(options => 2 { 3 options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; 4 options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; 5 }) 6 .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme) 7 .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options => 8 { 9 options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; 10 ………………省略內容……………… 11 //------------------此處開始為處理此問題------------------- 12 options.Events=new OpenIdConnectEvents() 13 { //修複登錄成功之後轉向signin-oidc並報錯的問題 14 OnRemoteFailure = ctx => 15 { 16 ctx.Response.Redirect($"{ctx.Request.Scheme}://{ctx.Request.Host}"); 17 ctx.Response.Body.WriteAsync(null); 18 return Task.CompletedTask; 19 } 20 }; 21 //---------------------處理此問題結束-------------------------------------- 22 });