Как я могу определить, будет ли выполняться код на клиенте или сервере с Blazor? - PullRequest
1 голос
/ 05 апреля 2020

Я новичок в разработке Blazor и, возможно, мне здесь не хватает чего-то очевидного, но поиск в Google, чтение документации и поиск по этому сайту не дали мне ответа.

У меня есть некоторый код, который мне нужно обеспечить, чтобы он выполнялся на стороне сервера по соображениям безопасности (например, хэширование паролей). Я знаю, что Blazor обычно автоматически определяет, где будет выполняться код, но могу ли я в этом случае убедиться, что некоторые функции выполняются на клиенте, а некоторые на стороне сервера?

1 Ответ

1 голос
/ 06 апреля 2020

Blazor Server - это модель приложения, в которой на сервере выполняется код весь , включая компоненты пользовательского интерфейса Blazor и связанный код. Это преобразуется в HTML diff-сообщения, которые отправляются через SignalR.

Blazor WASM (WebAssembly) - это то место, куда компоненты Blazor UI загружаются и запускаются на клиенте. Поэтому любой конфиденциальный или конфиденциальный код не должен быть включен в этот проект.

Выбор между этими двумя вариантами первоначально выполняется при выборе типа проекта: enter image description here

Если у вас есть приложение Blazor WASM, и вы можете решить запустить некоторые функции на сервере, если вы используете sh. Стандартный пример «ASP. NET Core hosted» делает это, внедряя службу прогноза погоды в качестве метода Web API (см. WeatherForecastController.cs).

Вы можете безопасно размещать код в серверном приложении ASP. NET, где он никогда не будет доступен клиенту, кроме как через предоставляемые вами методы, например методы Web API.

Все, что связано с безопасностью или проверкой, является хорошим примером. Любой хешированный пароль всегда должен быть на сервере, а не на клиенте.

Надеюсь, это поможет очистить его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...