C# ravendbauth包。为什么要扮演角色&;存储在系统文档中的用户?
官方RavenDb文档在系统文档还是常规文档中存储用户和角色方面不一致 虽然不建议使用某种方式,但一篇文章(请参阅)通过使用C# ravendbauth包。为什么要扮演角色&;存储在系统文档中的用户?,c#,.net,authorization,ravendb,nosql,C#,.net,Authorization,Ravendb,Nosql,官方RavenDb文档在系统文档还是常规文档中存储用户和角色方面不一致 虽然不建议使用某种方式,但一篇文章(请参阅)通过使用raven/启动文档ID隐式地将用户存储在系统文档中,而另一篇文章(请参阅)使用常规文档(作为文档ID中的noraven/前缀) 问题:在系统文档中存储用户和角色的优点是什么 似乎权限检查(IsAllowed()method)可以在不考虑存储的情况下工作。但是,无法查询存储在系统文档中的文档(只能通过ID加载)是一个严重的缺点。Alex, 以Raven/开头的文档称为系统文
raven/
启动文档ID隐式地将用户存储在系统文档中,而另一篇文章(请参阅)使用常规文档(作为文档ID中的noraven/
前缀)
问题:在系统文档中存储用户和角色的优点是什么
似乎权限检查(IsAllowed()
method)可以在不考虑存储的情况下工作。但是,无法查询存储在系统文档中的文档(只能通过ID加载)是一个严重的缺点。Alex,
以Raven/
开头的文档称为系统文档,通常由RavenDB本身使用。换句话说,它们通常具有有意义的文档ID
Raven/apikees/Foo
例如,将搜索文档以验证Foo
Api密钥
另一方面,是允许的
方法,朋友可以接受任何文档id,因此不必提前知道
这是造成这种差异的主要原因。
请注意,不会复制系统文档,而会复制其他文档。通过使您的授权规则成为系统文档,您可以防止它们被复制
这可能是你想做或不想做的事情,取决于你的需要