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 try 10 { 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、登录
完全没有问题,是不是很简单呀?