使用ASP.NET获取当前登录的AD帐号 “域\用户名”
故事背景:
本人是要实现Windows登录后,就直接通过AD获取 用户名,而不需要重新登录,所以网上找了很多案例,各种测试,都没有找到解决方案,后来经过了几天时间的研究探讨,各种百度代码测试,现在总结下大概要点。
1 在这里插入代码片
Response.Write("UserName :" + System.Environment.UserName.ToLower() + "<br/>"); //计算机名账户名
string strUserData = HttpContext.Current.User.Identity.Name;
System.Security.Principal.WindowsIdentity windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.SecurityIdentifier sid = windowsIdentity.User;
Response.Write(windowsIdentity.Name + "<br/>"); //域\用户名
主要注意如下配置:
1 web.config 要加上这两个配置
<system.web>
<authentication mode="Windows"/>
<identity impersonate="true"/>
</system.web>
2 IIS 的访问权限配置
注意:一定要把匿名访问的关闭,即我图上的第一项。
网上还找了很多有用的信息
public string CpuID; //CPU的ID
public int CpuCount; //CPU的个数
public string[] CpuMHZ;//CPU频率 单位:hz
public string MacAddress;//计算机的MAC地址
public string DiskID;//硬盘的ID
public string DiskSize;//硬盘大小 单位:bytes
public string IpAddress;//计算机的IP地址
public string LoginUserName;//操作系统登录用户名
public string ComputerName;//计算机名
public string SystemType;//系统类型
public string TotalPhysicalMemory; //总共的内存 单位:M
需要的自己下载类自己看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Management;
/// <summary>
///Computer 的摘要说明
/// </summary>
public class Computer
{
public string CpuID; //CPU的ID
public int CpuCount; //CPU的个数
public string[] CpuMHZ;//CPU频率 单位:hz
public string MacAddress;//计算机的MAC地址
public string DiskID;//硬盘的ID
public string DiskSize;//硬盘大小 单位:bytes
public string IpAddress;//计算机的IP地址
public string LoginUserName;<