1

私のプログラムは、データ ファイルを作成するライブラリを使用しています。一部のユーザーが間違ってプログラムを「管理者として実行」するという問題があり、その結果、一部のデータ ファイルが管理者の所有者で作成され、通常のユーザーは後で編集できなくなります。管理者権限を「ドロップ」して、ユーザーが「管理者として実行」せずにプログラムを継続して実行できるようにする方法を見つけていますか? これどうやってするの?

4

2 に答える 2

2

これで、新しいオブジェクトの所有者を現在のユーザーにすることができます。

if(GetTokenInformation(hToken,TokenUser,tu,buff.size(),&rw)){    
    if(!SetTokenInformation(hToken,TokenOwner,tu,buff.size())){    
    }    
}
于 2013-01-16T18:07:56.920 に答える
2

求めていることを行うには、管理者として実行しているかどうかを検出する必要があります。管理者として実行している場合は、制限付きトークンを作成し、そのトークンを使用してプログラムを再起動します。

同様の結果を達成する他の方法は次のとおりです。

ファイルの所有者は、そのグループのメンバーに対して、デフォルトで管理者グループに設定されます。この設定は、ローカル セキュリティ ポリシーによって制御できます。

詳細はこちら:

または、 を使用するCreateFile場合、 を使用してファイルを作成するときに所有者を指定しSECURITY_DESCRIPTOR、ユーザーまたはそのグループのいずれかにすることができます。

于 2013-01-16T10:14:33.730 に答える