📄 class1.cs
字号:
using System;
using System.Threading;
using System.Security.Principal;
using System.Security.Permissions;
namespace UseRBS
{
public class UseRBSApp
{
[STAThread]
public static void Main(string[] args)
{
WindowsIdentity wi = WindowsIdentity.GetCurrent();
WindowsPrincipal wp = new WindowsPrincipal(wi);
Console.WriteLine("Principal/Identity values:");
Console.WriteLine("Name: " +wp.Identity.Name);
Console.WriteLine("AuthenticationType: "
+wi.AuthenticationType);
Console.WriteLine("IsAuthenticated: " +wi.IsAuthenticated);
Console.WriteLine("IsAnonymous: " +wi.IsAnonymous);
Console.WriteLine("IsGuest: " +wi.IsGuest);
Console.WriteLine("IsSystem: " +wi.IsSystem);
Console.WriteLine("Token: " +wi.Token);
Console.WriteLine("IsInRole \"Administrators\": "
// +wp.IsInRole("BUILTIN\\Administrators"));
+wp.IsInRole(WindowsBuiltInRole.Administrator));
Console.WriteLine("Identity==VENUS\\\\Andrew: " +
(String.Compare(wp.Identity.Name,
"VENUS\\Andrew")==0));
try
{
Thread.CurrentPrincipal = wp;
PrincipalPermission pp =
new PrincipalPermission(
"VENUS\\Andrew",
"BUILTIN\\Administrators");
pp.Demand();
Console.WriteLine("PrincipalPermission OK");
TestDeclarative();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
try
{
PrincipalPermission pp1 = new PrincipalPermission(
"VENUS\\Andrew", "BUILTIN\\Administrators");
PrincipalPermission pp2 = new PrincipalPermission(
"VENUS\\Polly", "BUILTIN\\Backup Operators");
(pp1.Union(pp2)).Demand();
Console.WriteLine("Union Demand OK");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
[PrincipalPermissionAttribute(SecurityAction.Demand,
Name = "VENUS\\Andrew", Role = "BUILTIN\\Administrators")]
public static void TestDeclarative()
{
Console.WriteLine("Declarative PrincipalPermission OK");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -