ASP.NETwindows身份验证详细步骤-域验证登录

Windows身份验证相比于form身份验证要方便的多,而且会有更好的安全保障。

我个人觉得windows身份验证写法有两种:

        第一种非代码方式进行windows身份验证;

        第二种是用代码访问活动目录,并获取活动目录(用户信息数据库)里的用户名,

但是第二种方式在有些情况下,不太安全!

第一种方式使用步骤如下:

1:需要在web.config设置:

     <authentication mode="Windows" />
2:获取用户名:

HttpContext.Current.User.Identity.Name;

    注意:这里的用户名实际是"计算机名\帐户名",就是从Active Directory中获取用户的登录名

3:发布网站:

     在发布网站时,将IIS配置中的“身份验证”中的“windows身份验证”开启,同时将“匿名身份验证”禁用

4:完成

第二种方式使用步骤,跟第一种方式差不多,但是需要使用代码来访问活动目录。

通常使用LDAP协议来访问Active Directory, 在.net framework中提供了DirectoryEntry和DirectorySearcher这二个类型让我们可以方便地从托管代码中访问 Active Directory 域服务。

代码如下:

        DirectoryEntry entry = new DirectoryEntry("LDAP://" + domainName);
        DirectorySearcher search = new DirectorySearcher(entry);
        search.Filter = "(samaccountname=" + loginName + ")";

        foreach( string p in properties )
            search.PropertiesToLoad.Add(p);

        SearchResult result = search.FindOne();

        if( result != null ) {
            foreach( string p in properties ) {
                ResultPropertyValueCollection collection = result.Properties[p];
                for( int i = 0; i < collection.Count; i++ )
                    Console.WriteLine(p + ": " + collection[i]);
            }
        }

在实际开发中遇到的问题

1:在获取用户名,不管用什么用户名登录,只能获取同一个用户名。

    原因:客户的域服务器跟部署网站的服务器不是同一个服务,而且域服务器只分配给部署网站的服务器一个用户名,用来登录域服务器,

             所以在获取的时候只能获取这个用户名 。


由于网上讲解windows身份验证原理的已经很多,本文只讲解具体使用步骤,能力有限,欢迎斧正。

另外原理推荐大家浏览:细说ASP.NET Windows身份认证

 

   

转载于:https://www.cnblogs.com/bsyblog/p/4182857.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值