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、登录

 

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

 

posted @ 2017-02-08 11:24  ljr忒修斯之船  阅读(2617)  评论(0编辑  收藏  举报