声明和拒绝访问资源
Windows Communication Foundation (WCF) 支持基于声明的授权机制。在基于是否存在声明来允许访问资源的同时,系统通常也基于是否存在声明来拒绝访问资源。这样的系统应该在查找导致允许访问的声明之前先检查 AuthorizationContext 是否存在导致拒绝访问的声明。
例如,对于具有类型为 Age
、权限为 PossessProperty 和资源值为 Under 21
的声明的任何用户,仅当该标识同时也具有类型为 Name
、权限为 Identity 和资源值为 Mallory
的声明时,系统才会拒绝其访问资源。换言之,对于年龄不到 21 岁的任何人,系统拒绝其访问资源,如果姓名为 Mallory,则系统允许其访问资源。为了正确地实现此语义,必须首先查找 Age
声明,然后确定年龄是否低于 21 岁。否则,如果 Mallory 不到 21 岁,则仅基于 Name
声明授予对资源的访问权限。