我真的很困惑,什么应该作为User属性传递给PrincipalPermission装饰师。我刚刚在.NET 4.6.1中创建了全新的WPF应用程序(但我也尝试了4.5.2和4.0),我放置了一个带有单击事件的按钮:
[PrincipalPermission(SecurityAction.Demand, Name = "MYDOMAIN\\myusername")]
private void foo_Click(object sender, RoutedEventArgs e)
{
var user = WindowsIdentity.GetCurrent().Name; // this returns: MYDOMAIN\\myusername
}我收到了请求主体权限失败的。为什么??
我也试过:
[PrincipalPermission(SecurityAction.Demand, Name = "myusername")]
[PrincipalPermission(SecurityAction.Demand, Name = "sysadmin")]
[PrincipalPermission(SecurityAction.Demand, Role = "DEVELOPERS")]
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]我甚至试过:[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
只是没用..。我做错什么了?如果这重要的话,我有VS2015。
编辑:
让我进一步简化一下:
为什么?
发布于 2018-06-15 14:02:11
据我所知,如果要将方法限制为名为GroupA的组,则可以使用
[PrincipalPermission(SecurityAction.Demand, Role = "GroupA")]注意使用PrincipalPermission.Role而不是PrincipalPermission.Name。你有一个叫username的小组吗?我认为没有,这可能就是问题所在。我不确定是否可以将方法限制为单个用户名,我只知道对用户组进行限制。
我所知道的PrincipalPermission.Name的唯一用法是使用证书。
[PrincipalPermission(SecurityAction.Demand, Name = "CN=<SubjectName>; <Certificate Thumbprint>")]https://stackoverflow.com/questions/50876873
复制相似问题