The RunAsPermssion class controls the execution of code in the security context of another user.
Methods
| Method | Description | |
|---|---|---|
|
assert | Declares that the calling code can start an API that is protected by a permission. (Inherited from CodeAccessPermission.) |
|
cancelTimeOut | Cancels a previous method call to the setTimeOut method. (Inherited from Object.) |
|
copy | Creates and returns a copy of a permission class object. (Overrides the copy Method.) |
|
demand | Checks the call stack to determine whether the permission required to invoke an API has been granted to the calling code. (Inherited from CodeAccessPermission.) |
|
equal | Determines whether the specified object is equal to the current one. (Inherited from Object.) |
|
getTimeOutTimerHandle | Returns the timer handle for the object. (Inherited from Object.) |
|
handle | Retrieves the handle of the class of the object. (Inherited from Object.) |
|
isSubsetOf | Determines whether a current permission is a subset of the specified permission when overridden by a derived class. (Overrides the isSubsetOf Method.) |
|
new | Initializes a new instance of the CodeAccessPermission class. (Overrides the new Method.) |
|
notify | Releases the hold on an object that has called the wait method on this object. (Inherited from Object.) |
|
notifyAll | Releases a lock on the object that was issued by the wait method on this object. (Inherited from Object.) |
|
objectOnServer | Determines whether the object is on a server. (Inherited from Object.) |
|
owner | Returns the instance that owns the object. (Inherited from Object.) |
|
setTimeOut | Sets up the scheduled execution of a specified method. (Inherited from Object.) |
|
toString | Returns a string that represents the current object. (Inherited from Object.) |
|
usageCount | Returns the current number of references, that is, the value of the reference counter, that the object has. (Inherited from Object.) |
|
wait | Pauses a process. (Inherited from Object.) |
|
xml | Returns an XML string that represents the current object. (Inherited from Object.) |
Remarks
You must call the assert method on the same tier, usually the server tier, that the corresponding CodeAccessPermission.demand method is called on before the protected API is executed. Call a method on the server tier from one of the following:
The RunAsPermission class is designed to check permissions for the runAs function. For a list of all APIs protected by permissions, see Secured APIs.
-
A server static method
–or–
-
A class instance method that is set to run on the server by using the RunOn class property
Examples
The following code example shows a new instance of the RunAsPermission class.
The assert method is called to declare that the code can then call the runAs function to run the EventJobDueDate.:runDueDateEventsForUser method in the security context of another user.
server static void main(Args args)
{
RunAsPermission _perm;
UserId _runAsUser;
SysUserInfo _userInfo;
_userInfo = SysUserInfo::find();
_runAsUser = _userInfo.Id;
_perm = new RunAsPermission(_runAsUser);
_perm.assert();
// Invoke the protected API.
RunAs(_runAsUser, classnum(EventJobDueDate), "runDueDateEventsForUser");
// Optionally, call revertAssert() to limit the scope of assert.
CodeAccessPermission::revertAssert();
}