【发布时间】:2011-09-07 20:08:10
【问题描述】:
在网站中,我使用 PrincipalPermission 属性来限制对某些方法的访问。
这是一个规范的例子:
class Program
{
static void Main(string[] args)
{
Foo();
}
[System.Security.Permissions.PrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Role = "Winners")]
static void Foo()
{ }
}
如果主体不在指定的角色中,则 .net 基础架构将引发 System.Security.SecurityException,并带有通用消息“请求主体权限失败”。
如果权限检查失败,我想记录 PrincipalPermission 所需的角色。这对我们的支持人员非常有用,他们可以将角色分配给用户和/或监控日志以查看是否发生任何可疑情况。显然,出于安全目的,最终用户仍会看到通用的未经授权的消息。我已经浏览了 SecurityException 本身,但它的任何地方都没有“角色”。
有没有办法得到这些信息?
【问题讨论】: