Есть вот такой код. Текущий юзер зачислен в локальные админы на компе, где это все запускается. Также он входит в доменную группу YYY Setup Group.
var b = WindowsPrincipal.Current.IsInRole(@"TEST\YYY Setup Group");
var ba = WindowsPrincipal.Current.IsInRole(@"BUILTIN\Administrators");
WindowsIdentity id = WindowsIdentity.GetCurrent();
WindowsPrincipal wPrincipal = new WindowsPrincipal(id);
bool st = wPrincipal.IsInRole(@"TEST\YYY Setup Group");
bool sta = wPrincipal.IsInRole(@"BUILTIN\Administrators");
Вопрос — почему b = false, ba = false, а st = true и sta = false?
Здравствуйте, senglory, Вы писали:
S>Есть вот такой код. Текущий юзер зачислен в локальные админы на компе, где это все запускается. Также он входит в доменную группу YYY Setup Group.
S>S>var b = WindowsPrincipal.Current.IsInRole(@"TEST\YYY Setup Group");
S>var ba = WindowsPrincipal.Current.IsInRole(@"BUILTIN\Administrators");
S>WindowsIdentity id = WindowsIdentity.GetCurrent();
S>WindowsPrincipal wPrincipal = new WindowsPrincipal(id);
S>bool st = wPrincipal.IsInRole(@"TEST\YYY Setup Group");
S>bool sta = wPrincipal.IsInRole(@"BUILTIN\Administrators");
S>
S>Вопрос — почему b = false, ba = false, а st = true и sta = false?
WindowsPrincipal.Current разве так можно писать?
namespace System.Security.Principal
{
[Serializable]
[ComVisible(true)]
public class WindowsPrincipal : IPrincipal
{
public WindowsPrincipal(WindowsIdentity ntIdentity);
public virtual IIdentity Identity { get; }
public virtual bool IsInRole(int rid);
[ComVisible(false)]
[SecuritySafeCritical]
public virtual bool IsInRole(SecurityIdentifier sid);
[SecuritySafeCritical]
public virtual bool IsInRole(string role);
public virtual bool IsInRole(WindowsBuiltInRole role);
}