首页 > 代码库 > asp.net权限认证篇外:集成域账号登录

asp.net权限认证篇外:集成域账号登录

 

在之前的我们已经讲过asp.net权限认证:Windows认证,现在我们来讲讲域账号登录,

这不是同一件事哦,windows认证更多的是对资源访问的一种权限管控,而域账号登录更多的是针对用户登录的认证,他一般与forms认证结合一起使用

 

demo就用之前的asp.net权限认证:Forms认证 

1、改一下LoginController,如下

 1     public class LoginController : Controller 2     { 3         public ActionResult Index() 4         { 5             var returnUrl = Request["ReturnUrl"]; 6  7             if (Request.HttpMethod == "POST") 8             { 9                 try10                 {11                     // 格式为: 域\登录名12                     var domainUser = Request["userid"];13                     var password = Request["password"];14                     var userArr = domainUser.Split(\\);15 16                     var entry = new DirectoryEntry(string.Concat("LDAP://", userArr[0]), userArr[1], password);17                     var search = new DirectorySearcher(entry);18                     var result = search.FindOne();19                     if (result != null)20                     {21                         var ticket = new FormsAuthenticationTicket(22                             1,23                             userArr[1],24                             DateTime.Now,25                             DateTime.Now.AddMinutes(20),26                             true,27                             "role1,role2,role3,role4",28                             "/"29                         );30 31                         var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));32                         cookie.HttpOnly = true;33                         HttpContext.Response.Cookies.Add(cookie);34 35                         return Redirect(returnUrl);36                     }37                 }38                 catch (Exception ex)39                 {40                     // 抛出异常。41                 }42             }43 44             ViewBag.ReturnUrl = returnUrl;45 46             return View();47         }48     }

 

 

2、运行项目,出现登录页面,正常的,因为我们默认首页就加了权限限制,输入域账户口令

技术分享

3、登录

技术分享

 

完全没有问题,是不是很简单呀?

 

asp.net权限认证篇外:集成域账号登录