Blazor服务器端授权

时间:2020-08-28 06:25:44

标签: c# .net-core authorization blazor-server-side

我一直在尝试在Server Side Blazor应用程序中实施授权,目前看来它正在运行,但是授权仅限于.razor页和组件。
我似乎无法尝试获取[Authorize] Microsoft.AspNetCore.Authorization属性以在我的基础服务中使用。

当前执行此操作的唯一方法是直接从HttpContextAccessor.HttpContext.User女巫读取声明,该声明可以注入到基础服务中。
我也可以调用RevalidatingIdentityAuthenticationStateProvider。

我在Startup.cs中正确注册了以下设置

  • RevalidatingIdentityAuthenticationStateProvider<TUser>

  • app.UseAuthentication();

  • app.UseAuthorization();

在App.razor中连同CascadingAuthenticationStateAuthorizeRouteView

这些功能正常运行,确实确实需要授权并限制访问。
我最大的问题是,我最初计划使用“前端”授权来驱动导航,但是限制了服务本身中的操作。

作为一个简短的说明,我使用个人用户帐户身份验证创建了一个新模板,它似乎也忽略了放在WeatherForecastService.cs中的所有[Authorize]标签

 [Authorize]
 public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
 {
    ** Boiler Plate Code **
 }

关于解决此问题的任何建议,我也怀疑我可能是在树错了树,因为这是所有服务器端的,因此实际上并不需要对基础服务进行授权。

0 个答案:

没有答案