Blazor WebAssembly 身份验证

Blazor WebAssembly Authentication

我正在学习 blazor,但在处理身份验证方面遇到了一些困难。我有一个 .net 核心 Web api 托管并想将 Blazor Web 程序集连接到它,但我发现的所有教程都使用它托管在一个包中的 asp.net 核心主机中。像这样托管在同一台机器上时,身份验证的安全性如何?

使用带有身份验证的 Blazor WebAssembly(如果可能的话)不是一个好主意: 通常,当您编写一个普通的客户端-服务器应用程序时,客户端会收集用户输入的数据并将其发送到服务器。在服务器端可以检查密码是否正确(例如建立数据库连接,检查用户名和密码是否匹配)。

在 Blazor WebAssembly 中,编译所有代码,生成 dll,发送到客户端(使用 Web-Assembly 技术)并在 JavaScript 沙箱中运行。这意味着所有对象在客户端都可用并且用户可以看到,因此也可以读取所有连接字符串。

此外,如果有一些方法可以屏蔽它们,实际上 none 其中 100% 安全。

如果您不需要离线应用程序,我建议您使用 Blazor Server 技术,即使用 SignalR。

不过,如果你真的想在WebAssembly中实现身份验证,你可以看看Microsoft documentation

希望这对您有用!

您可以先浏览 official docs. I also recommend you seeing this video. You'll likely need to use IdentityServer4, for that see this playlist and the official Github repo 示例项目。