1

この情報を winform、wpf、またはコンソール アプリケーションで使用できることはわかっています。しかし、私はむしろ、どのロールを持つどのユーザーが特定のメソッドを実行しているかを判断したいので、それらを決定してさまざまなコードを実行できます。

さらに、デスクトップアプリで。ユーザーはどのようにログインできますか? 特別な winform または wpf ログイン コントロールはありますか?

4

1 に答える 1

1

「プリンシパル」を使用できるはずです。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。多くのことをする必要はありません。

于 2010-06-01T11:48:17.920 に答える