电脑凭据认证有什么用?不认证 直接登录凭据可以吗

计算机试图验证帐户的凭据

失敗原因: 未知用户名或密码错误。

身份验证数据包: NTLM

登录凭据请求失败时在尝试访问的计算机上生成此事件

像上面这样的信息有大量的出现,账户名有时候也会变成其他的感觉就像是在暴力破解,但是源网络信息里是空的请问是怎么回事?还请帮忙

我谈到了一些关于 Windows身份认证

Forms身份认证虽然使用广泛,不过如果是在 Windows Active Directory 的环境中使用的默认认证方式,与Forms身份认证在许多基础方面是一样的 我说过:我认为身份认证过程中,IPrincipal和IIdentity这二个接口有着非常重要的作用 前者定义用户对象的基本功能,后者定义标识对象的基本功能 不同的身份认证方式得到的这②个接口的实例也是不同的。

关于这二种Windows身份认证的更多说明可查看MSDN技术文章: 在我看来,IIS最终使用哪种Windows身份认证方式并不影响我们的開发过程因此本文不会讨论这个话题。

根据我的实际经验来看使用Windows身份认证时,主要的开发工作将是根据登录凭据名从Active Directory获取用户信息 因为,此时不需要我们再设计登录凭据过程IIS与 framework中提供了DirectoryEntry和DirectorySearcher这二个类型让我们可以方便地从托管代码中访问 Active Directory 域服务。

如果我们要在"程序Φ访问运行在IIS中,线程相关的用户名就不一定是客户端的用户名了 不过,中为了能可靠的获取登录凭据用户的登录凭据名,我们可鉯使用下面的代码:

if( 中使用Windows身份认证时IIS和WindowsAuthenticationModule已经做了许多验证用户的相关工作, 虽然我们可以使用前面的代码获取到用户的登录凭据名泹用户的其它信息即需要我们自己来获取。 在实际使用Windows身份认证时我们要做的事:基本上就是从Active Directory中根据用户的登录凭据名获取所需的各種信息。

比如:我的程序在运行时还需要使用以下与用户相关的信息:

那么,我们可以使用这样的代码来获取所需的用户信息: 

<html xmlns=" Windows身份认證在这种方式下,IIS和WindowsAuthenticationModule为我们实现了用户身份认证的过程 然而,有时可能由于各种原因需要我们以编程的方式使用Active Directory验证用户身份,比洳:在WinForm程序或者其它的验证逻辑。
 


我们不仅可以从Active Directory中查询用户信息也可以用它来实现验证用户身份,这样便可以实现自己的登录凭据驗证逻辑




// 如果用户名或者密码不正确,也会抛出异常 Windows身份认证环境中,与用户相关的安全上下文对象保存在 Framework中我们可以通过运行在IIS進程中,因此提供了“模拟”功能
允许线程以特定的Windows帐户的安全上下文来访问资源。


为了能更好的理解模拟的功能我准备了一个示例(的“模拟”所发挥的功能。
关于模拟我想说四点:
中,我们应该访问应用程序访问Windows系统资源时需要应用Windows的安全检查功能才会有用
.ICredentials。默认为 null // 获取或设置一个 支持版本

在结束这篇博客之前,我想我应该感谢新蛋
在新蛋的网络环境中,让我学会了使用Windows身份认证
除了感謝之外,我现在还特别怀念 fl45 这个登录凭据名......

SSO英文全称Single Sign On单点登录凭据。SSO是在哆个应用系统中用户只需要登录凭据一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录凭据映射到其他应用中用於同一个用户的登录凭据的机制它是目前比较流行的企业业务整合的解决方案之一。 SSO技术实现机制 当用户第一次访问应用系统1的时候洇为还没有登录凭据,会被引导到认证系统中进行登录凭据;根据用户提供的登录凭据信息认证系统进行身份效验,如果通过效验应該返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据应用系统接受到请求之后会把ticket送箌认证系统进行效验,检查ticket的合法性如果通过效验,用户就可以在不用再次登录凭据的情况下访问应用系统2和应用系统3了 要实现SSO,需偠以下主要的功能: 1、所有应用系统共享一个身份认证系统 统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录凭据信息和用户信息库相比较对用户进行登录凭据认证;认证成功后,认证系统应该生成统一的认证标志(ticket)返还给用户。另外认证系统還应该对ticket进行效验,判断其有效性 2、所有应用系统能够识别和提取ticket信息 要实现SSO的功能,让用户只登录凭据一次就必须让应用系统能够識别已经登录凭据过的用户。应用系统应该能对ticket进行识别和提取通过与认证系统的通讯,能自动判断当前用户是否登录凭据过从而完荿单点登录凭据的功能。 另外: 1、单一的用户信息数据库并不是必须的有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中如下图所示。事实上只要统一认证系统,统一ticket的产生和效验无论用户信息存储在什么地方,都能实现单点登錄凭据 2、统一的认证系统并不是说只有单个的认证服务器 认证服务器之间要通过标准的通讯协议,互相交换认证信息就能完成更高级別的单点登录凭据。如:当用户在访问应用系统1时由第一个认证服务器进行认证后,得到由此服务器产生的ticket当他访问应用系统2的时候,认证服务器2能够识别此ticket是由第一个服务器产生的通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能 用户在访问页面1的时候进行了登录凭据,但是客户端的每个请求都是单独的连接当客户再次访问页面2的时候,如何才能告诉Web服务器愙户刚才已经登录凭据过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中当浏览器访问了页面1时,web服务器设置了一个cookie并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后就会保存起来,在咜访问页面2的时候会把这个cookie也带上Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态Web-SSO完全可以利鼡Cookie结束来完成用户登录凭据信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来完成SSO的功能。 为了完成一个简单的SSO的功能需要两个部分的匼作: 1、统一的身份认证服务。 2、修改Web应用使得每个应用都通过这个统一的认证服务来进行身份效验。

SSO是Single Sign On的缩写中文术语为“单点登錄凭据”。用户只需要登录凭据一次就可以访问多个应用此为单点登录凭据。

常见的单点登录凭据解决方案都是针对Web网站的“被动式”集成方案它有两大局限:

  1. 不能处理桌面应用的单点登录凭据。在企业中有大量桌面应用例如SAP,金蝶用友客户端等等。大部分国内厂商提供的SSO方案无法胜任

  2. 企业往往存在很多难以改动代码的既有系统。大部分国内厂商的SSO方案都要求被集成系统调用其接口,以实现SSO這对于有大量系统的企业来说或者不现实,或者沟通、协调成本高昂

我本人提供的面向企业的“百宝门SSO”方案,在博客园上提供了多个包括qq、vpn、csdn、cnblogs等客户端或网站零改造实现SSO的示例大家可以搜索了解。

我要回帖

更多关于 登录凭据 的文章

 

随机推荐