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 示例项目。
我正在学习 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 示例项目。