在云那方

首页 新随笔 联系 订阅 管理
  1. string domainAndName = Page.User.Identity.Name;  
  2.         string[] infoes = domainAndName.Split(new char[1] { '//' }, StringSplitOptions.RemoveEmptyEntries);  
  3.         string userDomainName = "";  
  4.         string userName = "";  
  5.         if (infoes.Length > 1)  
  6.         {  
  7.             userDomainName = infoes[0];  
  8.             userName = infoes[1];  
  9.         }  

 

 

需要注意的地方(可能出现问题的地方已经解决方案):

1.将IIS Authentication设置为:Windows Authentication,并且只有这一项

2.在ASP.Net的Web.Config中添加:<identity impersonate="true"/> <authentication mode="Windows"/>

3.发布到IIS后,将Application Pool选择为Classic的

4.将IIS的 ISAPI and CGI Restrictions设置为Allowed

 

 

要让IE打开一个Windows身份认证的网站不提示登录对话框,必须满足以下条件:
1. 必须在 IIS 的 Web 站点属性中启用 Windows 集成身份验证。
2. 客户端和Web服务器都必须在基于Microsoft Windows的同一个域内。
3. Internet Explorer 必须把所请求的 URL 视为 Intranet(本地)。
4. Internet Explorer 的 Intranet 区域的安全性设置必须设为“只在 Intranet 区域自动登录”。
5. 请求Web页的用户必须具有访问该Web页以及该Web页中引用的所有对象的适当的文件系统(NTFS)权限。
6. 用户必须用域帐号登录到Windows 。

 

在这几个条件中,如果网站是在一个Windows域中运行,除了第3条可能不满足外,其它条件应该都容易满足(第4条是默认值)。 因此,要让IE不提示输入登录帐号,只要确保第3条满足就可以了。

 

另外,除了在IE中设置Intranet外,还可以在访问网站时,用计算机名代替IP地址或者域名, 那么IE始终认为是在访问Intranet内的网站,此时也不会弹出登录对话框。

1. IE在集成Windows身份认证时,虽然不提示登录对话框,但是不表示不安全,它会自动传递登录凭据。
2. 这种行为只有IE才能支持。(其它的浏览器只是会记住密码,在实现上其实是不一样的。)
3. 集成Windows身份认证,也只适合在Intranet的环境中使用。

 

posted on 2013-08-01 19:51  Rich.T  阅读(1609)  评论(0编辑  收藏  举报