介面如下:
public async Task<Response> ConnectionValidation1(Request request, IFormCollection files)
呼叫如下:
byte[] responseBytes = webClient.UploadData(介面地址, "POST", bytes);
一個檔案上傳介面,用多執行緒呼叫,偶爾出現回傳登錄頁面的html。
登錄驗證cookie如下
services.AddAuthentication(b =>
{
b.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
b.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
b.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(b =>
{
//取消認證票據Cookie的SameSite屬性
b.Cookie.SameSite = SameSiteMode.None;
//登陸地址
b.LoginPath = "/Account/Login";
//sid
b.Cookie.Name = "My_SessionId";
// b.Cookie.Domain = "shenniu.core.com";
b.Cookie.Path = "/";
b.Cookie.HttpOnly = true;
b.Cookie.Expiration = new TimeSpan(0, 60, 30);
b.ExpireTimeSpan = new TimeSpan(0, 60, 30);
});
介面控制器沒有添加[Authorize]屬性,繼承的是Controller。怎么會出現多執行緒呼叫介面偶爾回傳登錄頁面?
uj5u.com熱心網友回復:
既然沒有加Authorize特性 就不存在登陸驗證的問題, 你說多執行緒呼叫 回傳登陸頁面,試過單執行緒呼叫? 就不回傳登陸頁面么? 應該還是你程式的問題uj5u.com熱心網友回復:
感覺是變數串了。uj5u.com熱心網友回復:
添加[AllowAnonymous]特性你說的偶爾,可能是已經登陸,但瀏覽器沒有關閉過,下次運行,當前背景關系是 已登陸 狀態
或者是登陸時記住我了
uj5u.com熱心網友回復:
還有個建議,驗證、授權,可以參考微軟官方檔案的方式,個人覺得不錯uj5u.com熱心網友回復:
如圖,我在出現回傳登錄頁記錄了URL日志。記錄的requestUrl(請求地址)都是介面地址,并沒有出現其他URL情況,足矣說明程式是沒問題的,就是不知為何介面會回傳登錄頁。:
uj5u.com熱心網友回復:
個人感覺是介面問題,部署在docker上的
uj5u.com熱心網友回復:
呼叫介面和瀏覽器沒關聯吧
uj5u.com熱心網友回復:
瀏覽器,這個我只是猜想添加[AllowAnonymous]特性還不行,估計是某種情況下,代碼直接跳轉到了登陸頁面
uj5u.com熱心網友回復:
瀏覽器,這個我只是猜想
添加[AllowAnonymous]特性
你說的偶爾,可能是已經登陸,但瀏覽器沒有關閉過,下次運行,當前背景關系是 已登陸 狀態
或者是登陸時記住我了
呼叫介面和瀏覽器沒關聯吧
添加[AllowAnonymous]特性還不行,估計是某種情況下,代碼直接跳轉到了登陸頁面
請求禁止重定向后回傳空
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/122568.html
標籤:ASP.NET
