この情報を winform、wpf、またはコンソール アプリケーションで使用できることはわかっています。しかし、私はむしろ、どのロールを持つどのユーザーが特定のメソッドを実行しているかを判断したいので、それらを決定してさまざまなコードを実行できます。
さらに、デスクトップアプリで。ユーザーはどのようにログインできますか? 特別な winform または wpf ログイン コントロールはありますか?
この情報を winform、wpf、またはコンソール アプリケーションで使用できることはわかっています。しかし、私はむしろ、どのロールを持つどのユーザーが特定のメソッドを実行しているかを判断したいので、それらを決定してさまざまなコードを実行できます。
さらに、デスクトップアプリで。ユーザーはどのようにログインできますか? 特別な winform または wpf ログイン コントロールはありますか?
「プリンシパル」を使用できるはずです。ASP.NET ログインはこれを IIRC に設定し、winform、WCF、WPF などに対して自分で行うことができます。たとえば、次のように使用できます。
public static bool IsInRole(string role)
{
var principal = Thread.CurrentPrincipal;
return principal == null ? false : principal.IsInRole(role);
}
システムにチェックを実行させることもできます。
[PrincipalPermission(SecurityAction.Demand, Role="SuperAdmin")]
public void DropDatabase() {/* ... */}
3.5 (SP1?) 以降では、ASP.NET ログイン メカニズムを使用して、プリンシパルの設定を含む winform/wpf ログインを実行できます。プロジェクトのプロパティで、[クライアント アプリケーション サービスを有効にする] を有効にします (または、そのタブの [詳細] リンクを参照してください)。
別の方法として、独自の ID/プリンシパルを記述するのは非常に簡単IIdentity
ですIPrincipal
。多くのことをする必要はありません。