XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFE各类拓展.NetCore/PermissionExtension/AdministratorPermission.cs
+3
-15
XFEstudio/XFEExtension
简化管理员权限申请访问的部分代码
8b6a82c
代码差异
1 个文件
+3
-15
@@ -1,6 +1,5 @@
1
1
using System.Diagnostics;
2
2
using System.Security.Principal;
3
using XFE各类拓展.NetCore.FileExtension;
4
3
5
4
namespace XFE各类拓展.NetCore.PermissionExtension;
6
5
@@ -26,13 +25,12 @@ public static partial class AdministratorPermission
26
25
return principal.IsInRole(WindowsBuiltInRole.Administrator);
27
26
}
28
27
/// <summary>
29
///
28
/// 请求管理员权限并重启程序
30
29
/// </summary>
31
30
public static void GetPermissionAndReboot()
32
31
{
33
32
try
34
33
{
35
"0".WriteIn("pm.xfe");
36
34
var startInfo = new ProcessStartInfo
37
35
{
38
36
UseShellExecute = true,
@@ -45,27 +43,17 @@ public static partial class AdministratorPermission
45
43
}
46
44
catch (Exception ex)
47
45
{
48
File.Delete("pm.xfe");
46
PermissionState = CurrentPermissionState.PermissionDenied;
49
47
throw new XFEExtensionException("无法获取管理员权限", ex);
50
48
}
51
49
}
52
50
static AdministratorPermission()
53
51
{
54
var result = "pm.xfe".ReadOut();
55
52
var isAdmin = IsAdministrator();
56
53
if (isAdmin)
57
{
58
54
PermissionState = CurrentPermissionState.Administration;
59
}
60
55
else
61
{
62
if (result == "-1")
63
PermissionState = CurrentPermissionState.Normal;
64
else
65
PermissionState = CurrentPermissionState.PermissionDenied;
66
}
67
if (File.Exists("pm.xfe"))
68
File.Delete("pm.xfe");
56
PermissionState = CurrentPermissionState.Normal;
69
57
}
70
58
}
71
59
#pragma warning restore CA1416 // 验证平台兼容性