我知道可以在 winform、wpf 或控制台应用程序中使用这些信息。但我宁愿确定哪个用户具有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。
此外在桌面应用程序中。用户如何登录?有什么特殊的winform或wpf登录控件吗?
我知道可以在 winform、wpf 或控制台应用程序中使用这些信息。但我宁愿确定哪个用户具有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。
此外在桌面应用程序中。用户如何登录?有什么特殊的winform或wpf登录控件吗?
你应该可以使用“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 登录,包括设置主体;在项目属性中启用“启用客户端应用程序服务”(或查看该选项卡上的“了解更多”链接)。
或者,编写自己的身份/主体非常简单 - 看看IIdentity
and IPrincipal
; 你不必做很多事情。