如何在服务器端 Blazor 中使用 OIDC 身份验证?
我使用了这个方法,但不知何故它不正确,因为@attribute [AllowAnonymous]实际上不起作用。所以我使用该[Authorized]属性而不是[AllowAnonymous]然后删除RequireAuthenticatedUser,但是OIDC不会将客户端重定向到服务器登录页面。
我查看了Steve Sanderson 的关于 Blazor 中的身份验证和授权的 GitHub 文章,但他没有谈论 OIDC。
这是我的启动课程:
services.AddAuthentication(config =>
{
config.DefaultScheme = "Cookie";
config.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookie")
.AddOpenIdConnect("oidc", config =>
{
config.Authority = "https://localhost:44313/";
config.ClientId = "client";
config.ClientSecret = "secret";
config.SaveTokens = true;
config.ResponseType = "code";
config.SignedOutCallbackPath = "/";
config.Scope.Add("openid");
config.Scope.Add("api1");
config.Scope.Add("offline_access");
});
services.AddMvcCore(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser() // site-wide auth
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
Run Code Online (Sandbox Code Playgroud) asp.net-authentication asp.net-core blazor blazor-server-side
当我将我的项目更新到 .Net 5 时,我使用 azure 管道我在构建解决方案步骤中收到此错误。
错误 MSB3644:找不到框架“.NETFramework,Version=v5.0”的参考程序集。要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到安装了 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集。因此,您的程序集可能没有正确针对您想要的框架。
那么我该如何解决这个问题呢?
我将 github 操作添加到我的存储库中以测试我的分支,然后将其合并到主分支,但它给了我这个错误:
MSBUILD:错误 MSB1011:指定要使用的项目或解决方案文件,因为此文件夹包含多个项目或解决方案文件。
有 4 个项目正在解决
那么我该如何解决这个问题呢?
name: .NET Core
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.301
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --configuration Release --no-restore
Run Code Online (Sandbox Code Playgroud)