IIdentity接口公开了AuthenticationType属性,我想要考虑到这一点,因为如果用户使用x509或基本用户名/密码身份验证登录,情况会有所不同,您知道:
[PrincipalPermission(SecurityAction.Demand, Role = "BigBoss", AuthenticationType="basic")]
protected static void DoSomething() {}而且,PrincipalPermission和PrincipalPermissionAttribute都是密封的(谢谢大家),所以我不能添加我需要的功能。这是因为一些特殊的原因,还是仅仅是一个设计缺陷?有什么办法解决这个问题吗?
发布于 2011-11-12 03:05:05
尽管两者都与安全性相关,但身份验证和授权实际上是两个独立的问题,并且将身份验证直接耦合到身份验证机制通常不是一个特别好的想法。
如果您觉得有令人信服的理由来添加这样的耦合,那么您有几种可用的方法:
PrincipalPermission和PrincipalPermissionAttribute是密封的,但没有什么可以阻止您创建执行所需操作的类似类型。对于#2,您可以创建一个自定义属性来创建包装PrincipalPermission的自定义权限,而不是从头开始重新创建它的所有逻辑。
https://stackoverflow.com/questions/8098594
复制相似问题