C# 操作计算机用户权限
我们可以用代码来获取当前登录用户的权限信息, 用户角色类型有以下几种:
// 摘要:
// 指定与 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;
}
C# 操作计算机用户权限的更多相关文章
- sudo命令: 在其他用户下操作root用户权限
一. 场景: 在某个远程服务器 A 上,用 账户1 登陆, 想要在root用户的目录下创建一个 .sh文件, 如果直接 用 touch test.sh 创建,会提示权限不足 此时可以用sudo命令: ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- T-Sql(七)用户权限操作(grant)
一般数据库的权限操作我们很少用,除非一些大型的项目,需要给数据库配置不同的用户及权限,防患于未然,今天我们就来了解下t-sql中配置用户权限操作. 先看示例代码: --创建登录名 create log ...
- mysql 操作用户权限
使用可以对mysql数据库用户表有操作权限的用户名登陆mysqlinsert into user(Host,User,Password) values('%','name','password');如 ...
- django用户权限操作
第一步:创建数据库和超级管理员,为了比较方便使用(里面有些的是没用的),额外新增 chioces , per_method , argument_list # 用户权限# 建立一个权限表,将映射关系存 ...
- mysqli用户权限操作
此操作指令在 mysql 的数据库中 所以要 use mysql 查询mysqli中所有用户的权限 select host,user form user; 添加用户 grant all privil ...
- mysql设置指定ip访问,用户权限相关操作
基础语法GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIE ...
- shiro 实现 用户 a 操作b 的权限 ,用户 b 能够及时获知。b不需要退出登陆 。 关闭鉴权缓存,或者不配置缓存
<bean id="myRealm" class="com.diancai.util.MyRealm"> <property name=&qu ...
- mysql用户权限操作
mysql用户权限操作1.创建用户mysql -urootcreate database zabbix default charset utf8;grant all on zabbix.* to za ...
随机推荐
- 【BZOJ】3670: [Noi2014]动物园(KMP)
题目 传送门:QWQ 分析 像求next一样求num. 第二次求next时加上不超过一半的条件. 时间复杂度: $ \huge O ( n ) $ 代码 // luogu-judger-enable- ...
- oracle打补丁步骤简介
1.了解opatchopatch是用于维护"个别"补丁的,有人称其为interim path或是one-off patch该命令的存放位置在$ORACLE_HOME下的OPatch ...
- 优化笔记:pfyhparopenfundinfotest_D_20140916.gz
性能瓶颈在函数的乱用.原代码黄色部分. 12分钟->35秒 ------------------------------------------------------------------- ...
- 关于setTimeout的一个逻辑题
function hh() { for (var i = 1; i <=5; i++) { setTimeout(function(){ console.log(i); },100) } con ...
- 11.solr学习速成之MoreLikeThis
Solr相似匹配 在网页搜索或电商产品搜索结果页面,很多时候会看到一个相似文档.相似产品或找相似的链接.Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeT ...
- hibernate多个主键
在hibernate中同一张表里面存在多个主键,必须要实现序列化接口(Serializable )
- docker学习记录1
起因 现在自己学习微服务,服务器越来越多,虽然自己写了一些shell脚本来安装需要的软件,比如mysql,redis,jdk等等,但是还是好麻烦.希望学习docker能够快速安装部署这些东西. 记录一 ...
- 数字1的ASCII值是多少
ASCII表是计算机将字符转为数字存储的一张转换表.因此,只有字符才有ASCII值,数字是没有的. 答案:数字1没有ASCII值,数字1在计算机中就是按数值1存储的. 字符1的ASCII值是 49
- 导入本体到Jena TDB数据库
本体的存储方法或称本体持久化,大致分为基于内存的方式.基于文件的方式.基于数据库的方式和专门的管理工具方式4种(傅柱等, 2013).其中,基于数据库的方式又有基于关系数据库.基于面向对象数据库.基于 ...
- 从邮件原理来看 postfix和docecot
好早好早以前计算机网络老师就教了说,邮件嘛,就三个协议smtp,imap,pop3. smtp 用来发邮件,imap,pop3用来收邮件.噢?是么.难道没有发现这句话有非常多的漏洞,根本就不能说清楚这 ...