zoukankan      html  css  js  c++  java
  • .Net C#域账号登陆验证

    //获取登陆页输入的域账号、密码
    string domainIP = "";      //域IP
    string userAccount = "";    //域账号
    string Password = "";      //域账号密码          
    using (DirectoryEntry deUser = new DirectoryEntry(@"LDAP://" + domainIP, userAccount, Password))
    {
    DirectorySearcher src = new DirectorySearcher(deUser);
    src.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" + userAccount + "))";
    src.PropertiesToLoad.Add("cn");
    src.SearchRoot = deUser;
    src.SearchScope = SearchScope.Subtree;
    
    SearchResult result = src.FindOne();
    if (result != null)//验证成功
    {
    DirectoryEntry de = result.GetDirectoryEntry();
    string userID = de.Username;
    #region 域账号验证通过后判断是否用户在本系统中
    var existUser = new DAL.Maintain.UserOP().GetData(userID);
    if (existUser == null)
    {
    ViewBag.ErrorInfo = "提示:您未开通系统的权限,请联系管理员。<br/>You have no access to the system, please contact the administrator!";
    return View();
    } 
    #endregion
    
    FormsAuthentication.SetAuthCookie(userID, false);
    Session.Add("UserID", userID);
    Logger.DefaultLog.Info("登陆sessionUserID:" + Session["UserID"].ToString());
    
    if (string.IsNullOrEmpty(ReturnUrl))
    {
    return Redirect(Url.Action("Index", "Home"));
    }
    else
    {
    //...
    }
    }
    else
    {
    ViewBag.ErrorInfo = "提示:登录失败: 未知的用户名或错误密码。<br/>Account or Password is incorrect!";
    return View();
    }
    
    }
  • 相关阅读:
    docker在Linux环境下的安装
    docker在Windows环境下的安装
    tcpdump和windump
    Centos7下安装Elasticsearch 5.6.6
    使用concurrent.futures模块并发,实现进程池、线程池
    Nginx配置Gzip
    linux常用命令
    Linux下文档与目录结构
    快速读取大文件的几种方式
    linux 将大文件分解为多个小文件
  • 原文地址:https://www.cnblogs.com/i-mengli/p/9625551.html
Copyright © 2011-2022 走看看