次の方法で共有


CAtlServiceModuleT::InitializeSecurity

サービスの既定のセキュリティ設定を提供します。

HRESULT InitializeSecurity( ) throw( );

戻り値

正常に終了した場合は、S_OK を返します。それ以外の場合は、エラーの HRESULT を返します。

解説

Visual Studio .NET 2003 では、このメソッドは基本クラスに実装されません。 Visual Studio プロジェクト ウィザードで生成されたコードにはこのメソッドが含まれていますが、以前のバージョンの Visual C++ で作成されたプロジェクトを ATL 7.1 でコンパイルすると、コンパイル エラーが発生します。 CAtlServiceModuleT から派生したクラスは、このメソッドを派生クラスで実装する必要があります。

PKT レベルの認証、RPC_C_IMP_LEVEL_IDENTIFY の偽装レベル、および null 以外の適切なセキュリティ記述子を CoInitializeSecurity の呼び出しで使用します。

ウィザードで生成された属性なしサービス プロジェクトの場合は、次のようになります。

class CNonAttribServiceModule : public CAtlServiceModuleT< CNonAttribServiceModule, IDS_SERVICENAME >
{
public :
   DECLARE_LIBID(LIBID_NonAttribServiceLib)
   DECLARE_REGISTRY_APPID_RESOURCEID(IDR_NONATTRIBSERVICE, "{29160736-339F-4A1C-ABEF-C320CE103E12}")
   HRESULT InitializeSecurity() throw()
   {
      // TODO : Call CoInitializeSecurity and provide the appropriate security settings for  
      // your service 
      // Suggested - PKT Level Authentication,  
      // Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY  
      // and an appropiate Non NULL Security Descriptor. 

      return S_OK;
   }
};

属性付きサービス プロジェクトの場合は、次のようになります。

[ module(SERVICE, uuid = "{D3103322-7B70-4581-8E59-12769BD9A62B}", 
   name = "AttribService", 
   helpstring = "AttribService 1.0 Type Library", 
   resource_name="IDS_SERVICENAME") ]
class CAttribServiceModule
{
public:
   HRESULT InitializeSecurity() throw()
   {
      // TODO : Call CoInitializeSecurity and provide the appropriate security settings for  
      // your service 
      // Suggested - PKT Level Authentication,  
      // Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY  
      // and an appropiate Non NULL Security Descriptor. 

      return S_OK;
   }
};

必要条件

ヘッダー: atlbase.h

参照

関連項目

CAtlServiceModuleT クラス