blazor - 具有数据库查找功能的 Blazor webassembly 基于资源的策略?
问题描述
在我的 blazor webassembly 项目(托管 asp.net 核心)中,我正在尝试创建一个基于策略的授权来进行数据库查找。
问题
- 在项目解决方案中,我应该将这些策略存储在哪里?共享项目?
- 唯一了解 dbcontext 的项目是Server 项目。Shared 项目没有对Server 项目的引用。所以我试图弄清楚如何访问这个DbContext以及客户端项目如何能够为DbContext注册依赖注入?
主意
我认为我的策略必须向 apicontroller 发出 http 请求才能获取数据,因此将数据库依赖注入留在服务器项目中。这是正确的方法吗?
在这里问了一个类似的问题:
在 Blazor 中,如何实现需要服务器访问权限的客户端授权检查?
任何帮助将不胜感激
解决方案
是的,您正确回答了您的问题。将您的数据库上下文保存在服务器项目中。共享项目确实对 db 一无所知,它应该保持这种状态。如果您需要一些数据,请从服务器项目中的 db 中检索它们,将它们转换为 DTO 并将它们作为 API 响应发送给您的客户端(如您所建议的那样)。将您的 DTO 存储在共享项目中。请注意,共享项目中的所有内容都作为客户端项目的一部分发送给用户。
您可以从以下网址获得灵感:https ://github.com/CuriousDrive/BlazingChat 或https://github.com/dotnet-presentations/blazor-workshop
推荐阅读
- mysql - 没有使用 cmd 命令导入的数据库
- python-3.x - 编写欢迎消息以及 RASA 中的选项时出现问题
- vim - 无法用 vim 突出显示过满行的列
- c++ - 如何从头到尾读取文本文件。C++
- typescript - 组织导入将导出放在单行上
- redirect - 从表单中获取字符串后,如何将字符串插入动态搜索 url?
- python - 从 Python 中的 json 文件中删除密钥(获取 TypeError)
- python - 我想要一个函数永远运行,但我不希望它重复
- python - 使用 Levenshtein 距离对 sqlalchemy 中的搜索查询进行排序?
- c - 重定向系统调用,如 fopen/open/等。在 macOS/达尔文