Windows Communication Foundation (WCF) 支持基于声明的授权机制。 在基于是否存在声明来允许访问资源的同时,系统通常也基于是否存在声明来拒绝访问资源。 这样的系统应该在查找导致允许访问的声明之前先检查 AuthorizationContext 是否存在导致拒绝访问的声明。
例如,系统可能会拒绝允许任何具有Age
类型声明、PossessProperty权限和Under 21
资源值的标识访问该资源,除非该标识还具有Name
类型声明、Identity权限和Mallory
资源值。 另一种方法是,系统拒绝访问年龄低于 21 岁的任何人,并在名称为 Mallory 时授予访问权限。 若要正确实现此语义,请务必先查找 Age
声明,并确定年龄是否低于 21 岁。 否则,如果 Mallory 未满 21 岁,则仅可根据 Name
主张授予资源访问权限。