C# ravendbauth包。为什么要扮演角色&;存储在系统文档中的用户?

C# ravendbauth包。为什么要扮演角色&;存储在系统文档中的用户?,c#,.net,authorization,ravendb,nosql,C#,.net,Authorization,Ravendb,Nosql,官方RavenDb文档在系统文档还是常规文档中存储用户和角色方面不一致 虽然不建议使用某种方式,但一篇文章(请参阅)通过使用raven/启动文档ID隐式地将用户存储在系统文档中,而另一篇文章(请参阅)使用常规文档(作为文档ID中的noraven/前缀) 问题:在系统文档中存储用户和角色的优点是什么 似乎权限检查(IsAllowed()method)可以在不考虑存储的情况下工作。但是,无法查询存储在系统文档中的文档(只能通过ID加载)是一个严重的缺点。Alex, 以Raven/开头的文档称为系统文

官方RavenDb文档在系统文档还是常规文档中存储用户和角色方面不一致

虽然不建议使用某种方式,但一篇文章(请参阅)通过使用
raven/
启动文档ID隐式地将用户存储在系统文档中,而另一篇文章(请参阅)使用常规文档(作为文档ID中的no
raven/
前缀)

问题:在系统文档中存储用户和角色的优点是什么

似乎权限检查(
IsAllowed()
method)可以在不考虑存储的情况下工作。但是,无法查询存储在系统文档中的文档(只能通过ID加载)是一个严重的缺点。

Alex, 以
Raven/
开头的文档称为系统文档,通常由RavenDB本身使用。换句话说,它们通常具有有意义的文档ID

Raven/apikees/Foo
例如,将搜索文档以验证
Foo
Api密钥

另一方面,
是允许的
方法,朋友可以接受任何文档id,因此不必提前知道

这是造成这种差异的主要原因。 请注意,不会复制系统文档,而会复制其他文档。通过使您的授权规则成为系统文档,您可以防止它们被复制

这可能是你想做或不想做的事情,取决于你的需要