【发布时间】:2020-01-27 09:06:21
【问题描述】:
我是 Web 开发的新手,所以这个问题可能是微不足道的。
我有一些物理设备,它们会将湿度(和其他东西)传输到 Azure Cosmos DB。我希望用户只能阅读他们的设备(通过网络应用程序中的图表)。所有设备最终都属于同一个集合。
我已经通过以下方式在 Azure 中建立了一个系统:
设备 -> Azure IoT-Hub -> Azure 函数 -> Azure Cosmos DB。
Web 应用程序使用 Azure B2C 让用户能够登录,但我如何将设备 ID“分配”给用户?我已经读过可以创建具有对某些分区键的特定访问权限的访问令牌,但是如何存储具有每个用户访问权限的信息?我需要一个新的数据库来仅存储这些信息吗?
一开始我必须手动授予权限。
一般信息:
- Azure cosmos db 中的数据使用 device-id 作为分区键。
- 用户可以拥有多个设备。
- Web 应用正在运行 ASP.NET 核心(我是新来的)。
- Web 应用程序需要登录才能访问。
- 我在 Visual Studio 2019 中进行编码,并使用了具有内置授权的示例。
感谢您的帮助。
注意:可能要求太多,但一般解释和代码示例对我来说是完美的:)
更新: 我设法获取了登录用户的电子邮件:
@using System.Security.Claims; // for using ClaimsIdentity
// Get user information
var userEmailAddress = ((ClaimsIdentity)User.Identity).FindFirst("emails").Value;
我最初的想法是建立一个数据库,其中包含:“电子邮件”和“可访问设备”。我想这必须是一个单独的数据库,因为我需要 cosmos db 中的生存时间参数。
【问题讨论】:
标签: azure asp.net-core azure-cosmosdb