1

我知道可以在 winform、wpf 或控制台应用程序中使用这些信息。但我宁愿确定哪个用户具有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。

此外在桌面应用程序中。用户如何登录?有什么特殊的winform或wpf登录控件吗?

4

1 回答 1

1

你应该可以使用“principal”;ASP.NET 登录设置了 IIRC,您可以自己为 winforms、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 登录,包括设置主体;在项目属性中启用“启用客户端应用程序服务”(或查看该选项卡上的“了解更多”链接)。

或者,编写自己的身份/主体非常简单 - 看看IIdentityand IPrincipal; 你不必做很多事情。

于 2010-06-01T11:48:17.920 回答