簡體   English   中英

Blazor WASM 基於查詢字符串授權屬性

[英]Blazor WASM authorize attribute based on query string

@attribute [Authorize(Roles = "Admin")]
@attribute [Authorize(Roles = NavigationManager.QueryString("level"))]

我在頁面級別添加了此代碼,第一個授權屬性工作正常,因為它只是一個常量值“Admin”,而不是第二個授權屬性。

我試圖根據查詢字符串授予訪問權限,但此代碼NavigationManager.QueryString("level")將出現此錯誤“非靜態字段、方法或屬性‘成員’需要對象引用”

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0120?f1url=%3FappId%3Droslyn%26k%3Dk(CS0120)

有沒有什么辦法解決這一問題?

簡短的回答:你不能這樣做。 屬性參數需要是編譯時常量

長答案:不要這樣做。 使用查詢字符串檢查授權本質上是不安全的。

如果您有復雜的授權,請查看基於策略的授權。 總的來說, 是一個很好的解釋器。 看看一個更Blazor WASM具體的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM