如何确定代码是否将在Blazor的客户端或服务器上运行?

时间:2020-04-05 17:25:01

标签: c# blazor

我是Blazor开发的新手,可能在这里缺少明显的东西,但是搜索google,阅读文档和搜索此站点并没有找到答案。

出于安全原因,我有一些代码需要确保在服务器端运行(例如,散列密码)。我知道Blazor通常会自动确定代码将在哪里运行,但是在这种情况下,我可以确保某些功能在客户端和服务器端运行吗?

1 个答案:

答案 0 :(得分:1)

Blazor服务器是其中 all 代码在服务器上运行的应用程序模型,其中包括Blazor UI组件和相关代码。这会转换为HTML差异消息,并通过SignalR发送。

Blazor WASM(WebAssembly)是Blazor UI组件下载到客户端并在客户端上运行的位置。因此,该项目中不应包含任何敏感或机密代码。

首先在选择项目类型时在两者之间进行选择: enter image description here

如果您有Blazor WASM应用程序,则可以根据需要决定在服务器上运行某些功能。标准的“ ASP.NET Core托管”示例通过将天气预报服务实现为Web API方法来实现此目的(请参见WeatherForecastController.cs)。

您可以安全地将代码托管在客户端永远无法访问的ASP.NET Core服务器应用程序中,除非通过您提供的方法(例如Web API方法。

与安全性或验证无关的一个很好的例子。任何密码哈希码都应该始终位于服务器上,而不应该位于客户端上。

希望这有助于清除它