一、添加引用
右击项目—— 管理NuGet程序包——分别搜索System.DirectoryServices、System.DirectoryServices.AccountManagement,安装
二、验证
[HttpPost] [EnableCors("userLogin")] public Comm.ReturnModelByName checkLogin([FromBody] UserInfo user) { var ret = new Comm.ReturnModelByName(); ret.EnName = ""; string domainName = "10.10.10.1"; PrincipalContext context = new PrincipalContext(ContextType.Domain, domainName, user.UserName, user.Password); try { if(context.ValidateCredentials(user.UserName, user.Password)) { Dictionary<string, string> keyValuePairs = new Dictionary<string, string> { { "userName", user.UserName } }; ret.Code = 200; ret.Msg = "登录成功"; //获取中文姓名 string sql = "select cnname from Employee where code = '" + user.UserName + "'"; DataTable dt = SQLHelper.ExecuteDataTable(sql); if(dt != null && dt.Rows.Count > 0) { ret.EnName = dt.Rows[0]["cnname"].ToString(); } ret.TnToken = tokenHelper.CreateToken(keyValuePairs); } else { ret.Code = 500; ret.Msg = "用户名或者密码错误" ; } } catch (Exception ex) { ret.Code = 500; ret.Msg = "登录失败:" + ex.Message; } return ret; } public class UserInfo { /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /// 密码 /// </summary> public string Password { get; set; } }
public class ReturnModelByName { /// <summary> /// 返回码 /// </summary> public int Code { get; set; } /// <summary> /// 消息 /// </summary> public string Msg { get; set; } /// <summary> /// 数据 /// </summary> public object Data { get; set; } /// <summary> /// Token信息 /// </summary> public TnToken TnToken { get; set; } public string EnName { get; set; } }
三、开放端口,如果无法调用,需要防火墙开放389端口
标签:set,AD,get,ret,user,Core3.1,NET,public,string From: https://www.cnblogs.com/ydc2023/p/16995598.html