我如何判断代码是否可以在安装了Blazor的客户端或服务器上运行?

How can I tell if code will run on the client or server with Blazor?(我如何判断代码是否可以在安装了Blazor的客户端或服务器上运行?)
本文介绍了我如何判断代码是否可以在安装了Blazor的客户端或服务器上运行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Blazor开发的新手,我可能在这里遗漏了一些明显的东西,但搜索Google、阅读文档和搜索这个站点都没有找到答案。

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

推荐答案

Blazor服务器是所有代码都在服务器上运行的应用程序模型,包括Blazor UI组件和相关代码。这将被转换为通过SignalR发送的HTML Diff消息。 Blazor WASM(WebAssembly)是将Blazor UI组件下载到客户端并在其上运行的位置。因此,任何敏感或机密代码都不应包含在该项目中。

在选择项目类型时,首先在两者之间进行选择:

如果您有Blazor WASM应用程序,那么您可以决定在服务器上运行某些功能(如果您愿意)。标准的"ASP.NET Core Hosted"示例通过将天气预报服务实现为Web API方法来实现这一点(请参见WeatherForecastController.cs)。

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

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

希望这有助于澄清这一点

这篇关于我如何判断代码是否可以在安装了Blazor的客户端或服务器上运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)