我们可以用代码来获取当前登录用户的权限信息, 用户角色类型有以下几种:
// 摘要:
// 指定与 System.Security.Principal.WindowsPrincipal.IsInRole(System.String) 一起使用的公共角色。
[Serializable]
[ComVisible(true)]
public enum WindowsBuiltInRole
{
// 摘要:
// 管理员具有对计算机或域的完全的无限制的访问权限。
Administrator = 544,
//
// 摘要:
// 用户被阻止进行意外的或有意的系统级更改。因此,用户可以运行已验证过的应用程序,但不能运行大部分旧式应用程序。
User = 545,
//
// 摘要:
// 来宾受到比用户更多的限制。
Guest = 546,
//
// 摘要:
// 超级用户具有大部分管理员权限(但也受到某些限制)。因此,高级用户除了可以运行已验证过的应用程序外,还可以运行旧式应用程序。
PowerUser = 547,
//
// 摘要:
// 帐户操作员管理计算机或域中的用户帐户。
AccountOperator = 548,
//
// 摘要:
// 系统操作员管理特定的计算机。
SystemOperator = 549,
//
// 摘要:
// 打印操作员可以获得打印机的控制权。
PrintOperator = 550,
//
// 摘要:
// 备份操作员仅在出于备份或还原文件目的时才可以重写安全限制。
BackupOperator = 551,
//
// 摘要:
// 复制程序支持域中的文件复制。
Replicator = 552,
}
/// <summary>
/// 获取当前用户的角色权限类型
/// </summary>
/// <returns></returns>
public static bool IsAdministrator()
{
bool result = false;
try
{
WindowsIdentity current = WindowsIdentity.GetCurrent();
if (current == null)
{
return false;
}
result = new WindowsPrincipal(current).IsInRole(WindowsBuiltInRole.Administrator);
}
catch (UnauthorizedAccessException)
{
}
catch (Exception)
{
}
return result;
}