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身份认证
ASP.NETwindows身份验证详细步骤-域验证登录的更多相关文章
- [更新]一份包含: 采用RSA JWT(Json Web Token, RSA加密)的OAUTH2.0,HTTP BASIC,本地数据库验证,Windows域验证,单点登录的Spring Security配置文件
没有任何注释,表怪我(¬_¬) 更新: 2016.05.29: 将AuthorizationServer和ResourceServer分开配置 2016.05.29: Token获取采用Http Ba ...
- asp.net 真正实现完全跨域单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. asp.ne ...
- 搭建Hadoop的HA高可用架构(超详细步骤+已验证)
一.集群的规划 Zookeeper集群: 192.168.182.12 (bigdata12)192.168.182.13 (bigdata13)192.168.182.14 (bigdata14) ...
- asp.net web 应用站点支持域账户登录
1.IIS站点应用程序池设置管道模式为classic模式,identity设置为管理员账户 2.站点验证设置,只打开windows验证,其他都关闭 3.应用程序配置web.config配置如下: &l ...
- ASP.NET站点Windows身份验证集成AD域,非LDAP
站点集成AD域验证 服务器机器入域 计算机右键属性-->“更改设置”-->“更改”-->填写所属域,确认后重启机器生效. 部署测试站点,localhost.ip.域名三种方式登录效果 ...
- Asp.Net_Web身份验证
百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很 ...
- 【ASP.NET】编程点滴 :ASP.NET身份验证
ASP.NET实际开发中身份验证 是一个不可回避的问题.在相当一段长的时间内,由于不求甚解,我对这个话题似懂非懂.今天就对它做个简单的小结. Authentication and Authorizat ...
- 基于JWT的web api身份验证及跨域调用实践
随着多终端的出现,越来越多的站点通过web api restful的形式对外提供服务,很多网站也采用了前后端分离模式进行开发,因而在身份验证的方式上可能与传统的基于cookie的Session Id的 ...
- [转]IIS的各种身份验证详细测试
本文转自:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326163 一. IIS的身份验证概述 1. ...
随机推荐
- Java NIO Channel和Buffer
Java NIO Channel和Buffer @author ixenos Channel和Buffer的关系 1.NIO速度的提高来自于所使用的结构更接近于OS执行I/O的方式:通道和缓冲器: 2 ...
- background-size (设置背景图片的大小)
设置背景图片的大小,以长度值或百分比显示(数值包括 长度length和百分比percentage),还可以通过cover和contain来对图片进行伸缩. 语法:background-size: au ...
- WPF 限制Textbox输入的内容
限制文本框TextBox的输入内容,在很多场景都有应用.举个例子,现在文本框中,只能输入0.1.2.3.4.5.6.7.8.9.“|”这11个字符. 限制输入0-9很容易实现,关键是这个“|”符号.它 ...
- 如何修改tomcat后台console标题(转)
一个机器启动多个tomcat之后,分不清楚项目之间的区别,通过console口设置一下标题 tomcat控制台改名,修改方法: 1.找到tomcat\bin\catalina.bat 2.找到 ...
- Maven项目下WEB-INFO目录下没有编译的classes文件
建立mavan项目之后,在项目目录中没有发现编译的classes文件夹 解决办法: 因为maven是默认将编译后的classes文件存入项目下的target文件夹中,所以我们需要修改编译后存放的路径, ...
- 中小型公司数据仓库搭建——以mysql为例
为了方便公司的数据分析平台的独立运行和数据挖掘的探索,今年上半年在公司搭建了支持数据平台和数据挖掘的数据仓库:现就数据仓库的创建工作总结如下,供大家参考: 首先介绍下数据仓库搭建的缘由: 公司创建两年 ...
- Samba: Server setup..
To make samba shard folder permission clear, there are 3 kind of permission need to be paid attentio ...
- winform上传文件
//上传图片 文件 public int addUpPic( String strProCode,String strFileName,String strUpType) { //strFileNam ...
- oracle 学习之DG的搭建
1.配置过程 确认为归档模式 SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG 配置归档日志存放路径( ...
- C#中的??是什么意思
C#中的??是什么意思 DJ8Angus | 浏览 49982 次 2012-01-16 12:07 2012-01-16 12:23 最佳答案 如果不赋予初值,C#的变量是不允许直接使用的 ...