.NET8 採用並新的框架,不過登入認證大體上的流程與 .NET6 是一致的。
更正。.NET8 的登入有關鍵性改變。
在 .NET 8 或更新版本中,改用 AddCascadingAuthenticationState()arrow-up-right 。請勿使用 CascadingAuthenticationStatearrow-up-right 元件,理論上效果相同。實際上有落差!應該是bug。
AddCascadingAuthenticationState()
在 .NET 7 或更早版本中,使用<CascadingAuthenticationState> 元件讓UI可取得授權。
<CascadingAuthenticationState> 元件讓UI可取得授權。
在 NET8 Blazor Web App,HttpContext 只在 page reload 才會更新。
因 NET8 變更授權行為,使得加值授權在某些間隙狀況下會無效!
在 NET6 的 RevalidatingServerAuthenticationStateProvider 已無效,因為它不是 Blazor Server App
RevalidatingServerAuthenticationStateProvider
補充 on 2024-5-30
嘗試找到的所有方法:Circuit、Middelware、CookieAuthenticationEvents、IHttpContextAccessor 或 RevalidatingServerAuthenticationStateProvider 都無法偵測 Auth cookie 已被手動強製刪除。將會一直保持在登入狀態直到 page reload 才會刷新(囧)。
不透過 ASP.NET Core Identity 使用 cookie 驗證 - 回應後端變更arrow-up-right
伺服器端 ASP.NET Core Blazor 其他安全性情節 - 用來為自訂服務擷取使用者的線路處理常式arrow-up-right
ASP.NET Core Blazor 驗證與授權 - 針對錯誤進行疑難排解arrow-up-right
ASP.NET Core Blazor 驗證與授權 - 資源授權arrow-up-right
ASP.NET Core BlazorSignalR 指引 - 監視伺服器端線路活動arrow-up-right
Access HttpContext in ASP.NET Corearrow-up-right
Resource-based authorization in ASP.NET Corearrow-up-right
ASP.NET Core 中的原則型授權arrow-up-right
使用新的 AddCascadingAuthenticationState()arrow-up-right 方式在UI取授權經測試,用<F5>刷新UI時會無效 => 404!這應該是bug。測了無數次發現是客製 CustomAuthenticationStateProvider 在<F5>刷新UI時沒有執行,所以授權不足,然後... 轉到 404 了! (囧) 。不過“正常使用”的話沒有此問題。
<F5>
在實務上廢除自訂 CustomAuthenticationStateProvider 元件。已採用替代方案了,不過未實在到此範例。
差別一:@rendermode。需明確知道該 page 的 interactive render mode。不同 @rendermode
@rendermode
差別二:新版的 razor page 改成 *.razor。也可以有條件的鑲入 blazor component。副檔名與 blazor componnet 一樣,這很容易混亂。
*.razor
不同 @rendermode 的通訊方法完全不同。
Server => SignalR
WebAssemply => WebAPI / JSON
non-interactive => Form Submit
平台: .NET8
框架: Blazor Server App (global)
IDE: Visual Studio 2022
Auth with cookie
Last updated 1 year ago