发明授权
- 专利标题: Applying a permission grant set to a call stack during runtime
- 专利标题(中): 在运行时将权限授予集应用于调用堆栈
-
申请号: US09613032申请日: 2000-07-10
-
公开(公告)号: US07076557B1公开(公告)日: 2006-07-11
- 发明人: Brian A. LaMacchia , Gregory Darrell Fee , Loren M. Kohnfelder , Ashok Cholpady Kamath
- 申请人: Brian A. LaMacchia , Gregory Darrell Fee , Loren M. Kohnfelder , Ashok Cholpady Kamath
- 申请人地址: US WA Redmond
- 专利权人: Microsoft Corporation
- 当前专利权人: Microsoft Corporation
- 当前专利权人地址: US WA Redmond
- 代理机构: Merchant & Gould P.C.
- 主分类号: G06F15/16
- IPC分类号: G06F15/16
摘要:
A system and method determine whether a called code frame has a requested permission available to it, so as to be able to execute a protected operation. A code frame is contained within a code assembly received from a remote or local resource location. A policy manager generates a permission grant set containing permission grant objects associated with the code assembly. Both the permission grant set and the code assembly are loaded into a runtime call stack for runtime execution of one or more code frames. Calls to other code frames may involve loading additional code assemblies and permission grant sets into the runtime call stack. In order for a called code frame to perform a protected operation, the code frame demands a requested permission from its calling code frame and all code frames preceding the calling code frame on the runtime call stack as part of a stack walk operation. If the calling code frame and the preceding call frames can satisfy the requested permission, the called code frame can perform the protected operation (absent stack overrides). Otherwise, a security exception is thrown and the called code frame is inhibited from performing the protected operation (absent stack overrides). Stack overrides may be employed to dynamically modify the stack walk operation. To increase performance, a stack walk may be avoided by caching an intersection of the permission grants of all code assemblies in the application.
信息查询