Sicurezza dei componenti a livello di codice

Quando si usa la sicurezza basata sui ruoli nell'applicazione COM+ che contiene il componente, è possibile accedere alle funzionalità di sicurezza a livello di codice dall'interno del componente. È possibile controllare l'appartenenza al ruolo per determinare se vengono eseguite sezioni di codice specifiche, è possibile accedere alle informazioni di sicurezza usando l'oggetto contesto delle chiamate di sicurezza ed è possibile determinare se la sicurezza è abilitata per la chiamata corrente. È possibile eseguire tutte queste attività usando un riferimento a un oggetto SecurityCallContext (per le applicazioni Microsoft Visual Basic) o un puntatore all'interfaccia ISecurityCallContext (per applicazioni C e Microsoft Visual C++).

Per altre informazioni sulla sicurezza basata sui ruoli a livello di codice, vedere gli argomenti seguenti in questa sezione:

Rappresentazione e funzionalità di sicurezza COM

Se il componente viene usato in un'applicazione COM+ che non usa la sicurezza basata sui ruoli, le informazioni sul contesto delle chiamate di sicurezza e controllo dei ruoli a livello di codice non sono disponibili. Tuttavia, è possibile usare la funzionalità di sicurezza a livello di codice fornita da COM. Per altre informazioni, vedere Sicurezza in COM.

Sebbene sia possibile usare la maggior parte delle funzionalità di sicurezza fornite da COM, non è possibile chiamare CoInitializeSecurity da un componente che fa parte di un'applicazione COM+ perché CoInitializeSecurity viene chiamato dal surrogato in cui viene eseguita l'applicazione COM+. Tuttavia, è possibile chiamare altre funzioni di sicurezza, ad esempio CoQueryClientBlanket, che recupera informazioni sul client.

In particolare, quando è necessario usare l'identità del client per accedere ad alcune risorse, ad esempio l'accesso a un file protetto da un descrittore di sicurezza o la propagazione dell'identità del client a un database, è possibile eseguire la rappresentazione a livello di codice. Per altre informazioni su quando e su come eseguire questa operazione, vedere Rappresentazione client e delega.

Test delle funzionalità di sicurezza

Se si usa la sicurezza a livello di codice COM+ nel componente, è necessario integrare il componente in un'applicazione COM+ quando si è pronti per testare la funzionalità di sicurezza del componente. Se un componente che usa la sicurezza a livello di codice COM+ viene eseguito senza essere integrato in un'applicazione COM+, verranno generate eccezioni. Pertanto, se si vuole assicurarsi che tale componente sia in grado di essere integrato correttamente in un'applicazione che non fa parte dell'ambiente COM+, è necessario assicurarsi che queste eccezioni vengano gestite in modo appropriato.

Documentazione dei requisiti di sicurezza

Se si scrive un componente autonomo per le applicazioni COM+ che usano la sicurezza basata sui ruoli, è necessario documentare il componente in modo che la sicurezza possa essere configurata in modo appropriato quando il componente è integrato in un'applicazione COM+. Ad esempio, è necessario identificare i ruoli a cui è necessario aggiungere e spiegare a quali metodi e interfacce ogni ruolo deve essere assegnato. Inoltre, se viene chiamato un metodo come IsCallerInRole("Teller"), è necessario descrivere le funzionalità a cui hanno accesso solo Tellers. È inoltre necessario specificare se è necessario un ruolo per proteggere l'accesso all'intero componente.

Autenticazione client

Rappresentazione e delega client

Sicurezza delle applicazioni della libreria

Sicurezza delle applicazioni multilivello

Amministrazione istration di sicurezza basata sui ruoli

Uso dei criteri di restrizione software in COM+