Blazor BFF OpenID Connect 模板项目教程
1. 项目的目录结构及介绍
Blazor.BFF.OpenIDConnect.Template/
├── BlazorBffOpenIdConnect/
│ ├── Client/
│ │ ├── Pages/
│ │ ├── Shared/
│ │ ├── wwwroot/
│ │ ├── _Imports.razor
│ │ ├── App.razor
│ │ ├── Program.cs
│ │ └── Startup.cs
│ ├── Server/
│ │ ├── Controllers/
│ │ ├── Pages/
│ │ ├── wwwroot/
│ │ ├── _Imports.razor
│ │ ├── App.razor
│ │ ├── Program.cs
│ │ └── Startup.cs
│ ├── Shared/
│ │ ├── Models/
│ │ ├── Services/
│ │ └── _Imports.razor
│ ├── BlazorBffOpenIdConnect.csproj
│ ├── appsettings.json
│ └── Program.cs
├── images/
├── .gitignore
├── BlazorBffOpenIDConnect.Template.csproj
├── Changelog.md
├── LICENSE
├── README-NUGET.md
├── README.md
└── global.json
目录结构介绍
- BlazorBffOpenIdConnect/: 项目的主要目录,包含客户端和服务器端的代码。
- Client/: Blazor WebAssembly 客户端代码。
- Pages/: 包含 Razor 页面。
- Shared/: 包含共享组件和代码。
- wwwroot/: 静态文件,如 CSS、JavaScript 和图像。
- _Imports.razor: 导入常用的命名空间。
- App.razor: 应用程序的根组件。
- Program.cs: 客户端应用程序的入口点。
- Startup.cs: 客户端应用程序的配置文件。
- Server/: ASP.NET Core 服务器端代码。
- Controllers/: 包含 API 控制器。
- Pages/: 包含 Razor 页面。
- wwwroot/: 静态文件,如 CSS、JavaScript 和图像。
- _Imports.razor: 导入常用的命名空间。
- App.razor: 应用程序的根组件。
- Program.cs: 服务器端应用程序的入口点。
- Startup.cs: 服务器端应用程序的配置文件。
- Shared/: 客户端和服务器端共享的代码。
- Models/: 数据模型。
- Services/: 共享服务。
- _Imports.razor: 导入常用的命名空间。
- BlazorBffOpenIdConnect.csproj: 项目文件。
- appsettings.json: 配置文件。
- Program.cs: 应用程序的入口点。
- Client/: Blazor WebAssembly 客户端代码。
- images/: 项目使用的图像文件。
- .gitignore: Git 忽略文件。
- BlazorBffOpenIDConnect.Template.csproj: 模板项目文件。
- Changelog.md: 项目变更日志。
- LICENSE: 项目许可证。
- README-NUGET.md: NuGet 包的说明文件。
- README.md: 项目说明文件。
- global.json: 全局配置文件。
2. 项目的启动文件介绍
客户端启动文件
- Program.cs:
public class Program { public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); await builder.Build().RunAsync(); } }
服务器端启动文件
- Program.cs:
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }
3. 项目的配置文件介绍
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"OpenIDConnectSettings": [
{
"Authority": "--your-authority--",
"ClientId": "--client ID--",
"ClientSecret": "--client-secret (user secrets)--"
}
]
}
配置文件介绍
- Logging: 配置日志级别。
- LogLevel: 定义不同命名空间的日志级别。
- AllowedHosts: 允许访问的主机。
- OpenIDConnectSettings: OpenID Connect 的配置。
- Authority: 认证服务器的地址。
- ClientId: 客户端 ID。
- ClientSecret: 客户端密钥(通常存储在用户机密中)。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考