替换 Principal 对象

更新:2007 年 11 月

提供身份验证服务的应用程序必须能够为给定的线程替换 Principal 对象。进一步说,安全系统必须帮助保护这种替换 Principal 对象的能力,这是因为恶意附加的、不正确的 Principal 会通过声明一个不真实的身份或角色危及应用程序的安全。因此,必须将 System.Security.Permissions.SecurityPermission 对象授予需要能够替换 Principal 对象的应用程序,以使这些应用程序可以对主体进行控制。(请注意,对于执行基于角色的安全检查或创建 Principal 对象而言,该权限不是必需的。)

通过执行下列任务可替换当前的 Principal 对象。

  1. 创建替换的 Principal 对象和关联的 Identity 对象(通常在执行身份验证后进行)。

  2. 将新的 Principal 对象附加到调用上下文中,如以下代码所示。

    Thread.CurrentPrincipal = principalObject;
    
    Thread.CurrentPrincipal = principalObject
    

请参见

概念

主体和标识对象

参考

System.Security.Permissions.SecurityPermission