下面的代码演示了如何在程序中读取用户的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();
        }
    }
}

 

用户身份验证之Windows验证_用户名