<ul>
<li>
Batch authorization queries whenever possible to avoid frequent out-of-process
round trips. For example, retrieve roles for multiple users in a single request.
</li><li>
Cache the authorization data close to where you will use it with an in-memory
store, such as a Hashtable. The cache also reduces dependencies on the location
and organization of the underlying store. You might also want a separate cache
for each physical computer, for performance and increased security.
</li><li>
Implement scheduled or on-demand refreshes of the cache information.
</li><li>
Implement lazy initialization of the authorization cache to avoid retrieving
authorization information when no access checks will occur.
</li>
</ul>