Vista とかで管理者権限があるかどうかチェックする

ちょっと思い出したのでめもめも。

using System.Threading;
using System.Security.Principal;

Thread.GetDomain().SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal currentPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
if (!currentPrincipal.IsInRole(WindowsBuiltInRole.Administrator)) {
    MessageBox.Show("このプログラムの実行には管理者権限が必要です。");
}