我一直在尝试在Server Side Blazor应用程序中实施授权,目前看来它正在运行,但是授权仅限于.razor
页和组件。
我似乎无法尝试获取[Authorize] Microsoft.AspNetCore.Authorization
属性以在我的基础服务中使用。
当前执行此操作的唯一方法是直接从HttpContextAccessor.HttpContext.User
女巫读取声明,该声明可以注入到基础服务中。
我也可以调用RevalidatingIdentityAuthenticationStateProvider。
我在Startup.cs中正确注册了以下设置
RevalidatingIdentityAuthenticationStateProvider<TUser>
app.UseAuthentication();
app.UseAuthorization();
在App.razor中连同CascadingAuthenticationState
和AuthorizeRouteView
这些功能正常运行,确实确实需要授权并限制访问。
我最大的问题是,我最初计划使用“前端”授权来驱动导航,但是限制了服务本身中的操作。
作为一个简短的说明,我使用个人用户帐户身份验证创建了一个新模板,它似乎也忽略了放在WeatherForecastService.cs中的所有[Authorize]标签
[Authorize]
public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
{
** Boiler Plate Code **
}
关于解决此问题的任何建议,我也怀疑我可能是在树错了树,因为这是所有服务器端的,因此实际上并不需要对基础服务进行授权。