下面的代码演示了如何在程序中读取用户的Windows身份信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Security.Principal;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
//打印当前用户的用户名
Console.WriteLine("当前用户:{0}",
Thread.CurrentPrincipal.Identity.Name);
//判断当前用户是否属于某个windows组
Console.WriteLine("是否为管理员:{0}",
Thread.CurrentPrincipal.IsInRole("BuiltIn//Administrators"));
WindowsPrincipal p =(WindowsPrincipal) Thread.CurrentPrincipal;
WindowsIdentity i = p.Identity as WindowsIdentity;
//打印当前用户的windows组信息
Console.WriteLine("{0}用户组信息:",Environment.NewLine);
foreach (var item in i.Groups.Translate(typeof(NTAccount)))
{
Console.WriteLine(item);
}
Console.Read();
}
}
}