我知道可以在winform,wpf或console应用程序中使用此信息。但我宁愿确定哪个用户有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。
此外,在桌面应用中。用户如何登录?是否有任何特殊的winform或wpf登录控件?
答案 0 :(得分:1)
你应该可以使用“委托人”; 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
和IPrincipal
;你不必做很多事。