RasSetCredentialsA 関数 (ras.h)

RasSetCredentials 関数は、指定された RAS 電話帳エントリに関連付けられているユーザー資格情報を設定します。

構文

DWORD RasSetCredentialsA(
  [in] LPCSTR            unnamedParam1,
  [in] LPCSTR            unnamedParam2,
  [in] LPRASCREDENTIALSA unnamedParam3,
  [in] BOOL              unnamedParam4
);

パラメーター

[in] unnamedParam1

電話帳 (PBK) ファイルの完全なパスとファイル名を指定する null で終わる文字列へのポインター。 このパラメーターが NULL の場合、関数は現在の既定の phone-book ファイルを使用します。 既定の電話帳ファイルは、[ダイヤルアップ ネットワーク] ダイアログ ボックスの [ユーザー設定] プロパティ シートでユーザーが選択したファイルです。

[in] unnamedParam2

電話帳エントリの名前を指定する null で終わる文字列へのポインター。

[in] unnamedParam3

指定した電話帳エントリに設定するユーザー資格情報を指定する RASCREDENTIALS 構造体へのポインター。 RasSetCredentials を呼び出す前に、構造体の dwSize メンバーを にsizeof(RASCREDENTIALS)設定し、設定する資格情報を示すように dwMask メンバーを設定します。

[in] unnamedParam4

RasSetCredentials が空の文字列 "" に設定して既存の資格情報をクリアするかどうかを示す 値です。 このフラグが TRUE の場合、RASCREDENTIALS 構造体の dwMask メンバーは、関数が空の文字列に設定する資格情報を示します。 このフラグが FALSE の場合、関数は、対応する RASCREDENTIALS メンバーの内容に従って、指定された資格情報を設定します。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS

関数が失敗した場合、戻り値は次のいずれかのエラー コードか、 ルーティングとリモート アクセスのエラー コード または WinError.h からの値です。

説明
ERROR_CANNOT_OPEN_PHONEBOOK
指定した電話帳が見つかりません。
ERROR_INVALID_PARAMETER
lpCredentials パラメーターが NULL であるか、指定されたエントリが電話帳に存在しません。
ERROR_ACCESS_DENIED
次のいずれかの条件が発生しました。
  • 呼び出し元のアプリケーションが、ユーザーごとの接続の既定の資格情報を設定しようとしました。 既定の資格情報は、すべてのユーザー接続に対してのみ設定できます。
  • ユーザーは、すべてのユーザー connectoid の場合に、すべてのユーザーに対して事前共有キーまたは資格情報を設定するための正しい特権を持っていません。 管理者のみがこれらのタスクを完了できます。

解説

RasSetCredentials 関数は、指定された RAS 電話帳エントリに関連付けられているユーザー資格情報を設定します。 電話帳エントリと共に格納される資格情報は、指定された電話帳エントリを使用して正常に接続した最後のユーザーの資格情報、または電話帳エントリの RasSetCredentials または RasSetEntryDialParams 関数の呼び出しで後で指定された資格情報です。

RasSetCredentials 関数は、電話帳エントリを使用して資格情報を安全に格納する推奨される方法です。 RasSetCredentialsRasSetEntryDialParams 関数よりも優先されます。これは、Windows オペレーティング システムの今後のリリースではサポートされない可能性があります。

パスワード ハンドルは "****************" (16 個のアスタリスク) です。 RasGetCredentials を呼び出し、パスワード フィールドに 16 *s を返す場合は、パスワードが格納されており、セキュリティ上の理由から、プレーン テキストでは返されません。 RASCREDENTIALS 構造体の szPassword メンバーに RasGetCredentials または RasGetEntryDialParams によって返されるパスワード ハンドル (16 *s) が含まれている場合、RasSetCredentials の次の呼び出しでは保存されたパスワードは変更されません。

すべてのユーザー接続の既定の資格情報を設定するには、lpCredentials パラメーターが指す RASCREDENTIALS 構造体の dwMask メンバーにRASCM_DefaultCreds フラグを設定します。 ユーザーごとの接続の既定の資格情報を設定しようとすると、 RasSetCredentialsERROR_ACCESS_DENIEDを返します。

すべてのユーザー接続の資格情報を設定するときに、呼び出し元のアプリケーションで phone-book パラメーター lpszPhonebook に NULL 以外の値が指定されている場合、電話帳ファイルは、すべてのユーザー アプリケーション データ パスの下にある電話帳ディレクトリに配置する必要があります。 電話帳ファイルの正しい場所を取得するには、最初に CSIDLをCSIDL_COMMON_APPDATAして SHGetFolderPath を呼び出します。 SHGetFolderPath は、すべてのユーザー のアプリケーション データ パスを返します。 このパスに次の文字列を追加します。

Microsoft\Network\Connections\Pbk

結合されたパスは、電話帳ファイルの正しい場所です。

メモlpszPhonebook パラメーターに NULL 以外の値を指定することは、以降のバージョンの Windows オペレーティング システムではサポートされない場合があります。
 
事前共有キーを設定するには、RASCREDENTIALSRASCM_PreSharedKey フラグを使用します。dwMask フィールド。

注意

ras.h ヘッダーは、RasSetCredentials をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ras.h
Library Rasapi32.lib
[DLL] Rasapi32.dll

関連項目

RASCREDENTIALS

Rasdial

RasGetCredentials

RasSetEntryDialParams

リモート アクセス サービス (RAS) の概要

リモート アクセス サービス関数