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();
    }
    
    }
  • 相关阅读:
    poi隐藏列
    凯西太太的果园
    java中不可变对象深入理解
    excel添加空白行的快捷键
    如何在多个页面中,引入一个公共组件
    对后端返回的数据进行适配
    我与时间管理的故事
    在前端团队的那些日子(初见)
    我是这样做时间管理的(下)
    我是这样做时间管理的(上)
  • 原文地址:https://www.cnblogs.com/i-mengli/p/9625551.html
Copyright © 2011-2022 走看看