我正在考虑编写自定义IPermission
实现,但不清楚它应该如何工作。我已经实施了IPrincipal
和IIdentity
。我想要完成的是能够检查当前IPrincipal
授权而不是其角色的权限。通常,对于给定类型,授权是read / add-delete / update / none。所以我想写这样的东西:
[CustomPermission(SecurityAction.Demand, Type = typeof(Foo), MinimumAuthorization = AuthorizationFlags.Read)]
public void SomeMethod(){}
这可能吗?我查看了http://msdn.microsoft.com/en-us/library/system.security.ipermission.aspx处的代码。这显示了如何实现接口,但我不明白上面的伪代码如何能够检查IPrincipal
的类型授权。
答案 0 :(得分:1)
CustomPermission
IPermission.Demand的{{1}}实施应该能够查看Thread.Current.CurrentPrincipal,将其投放到您的自定义主体,并从那里调查您的授权数据。