劝告
我有一个blazor服务器应用程序,它使用了一个自定义的authenticationstateprovider。它使用ProtectedSessionStorage保存警告状态。由于我可能想重用这些代码,所以我想将会话密钥传递给构造函数,但我不确定如何做到这一点。
我想的是这样的:Program.cs
.
.
builder.Services.AddScoped<ProtectedSessionStorage>();
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthenticationStateProvider>(options => { sessionKey = "abcdef"} );
.
.
自定义身份验证状态提供程序.cs
public class CustomAuthenticationStateProvider : AuthenticationStateProvider
{
private readonly ProtectedSessionStorage _sessionStorage;
private readonly string _sessionKey;
public CustomAuthenticationStateProvider(ProtectedSessionStorage sessionStorage, sessionKey = "12345")
{
_sessionStorage = sessionStorage;
_sessionKey = sessionKey;
}
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
{
try
{
var userSessionStorageResult = await _sessionStorage.GetAsync<UserSession>("UserSession");
.
.
.
}
.
.
.
}
这当然行不通。有人能告诉我我是否走上了正确的轨道吗?