搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
程序人生,由“小作文”事件想到的_计心是小作文事件
2
微信小程序中如何调用本地的接口_微信小程序如何调用本地接口
3
工具篇·PIP和GIT_pip git
4
单机模拟分布式MINIO(阿里云)_minio 2024-03-15t01-07-19z版本端口配置_minio 2024 使用教程
5
springboot3使用自定义注解+AOP+redis优雅实现防重复提交_@before("@annotation(com.tongchuang.human.api.avoi
6
五. Apache Griffin UI界面化操作_apache griffin操作手册
7
微信小程序童装服饰在线商城购买平台+后台管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】_微信小程序购物系统小程序+后台管理系统
8
SpringBoot学习之路---使用RabbitTemplate操作RabbitMq_rabbittemplate用法
9
git 命令之添加app-debug.apk文件到github仓库_github 上传 apk
10
微信小程序的校园服务系统+后端用Spring Boot+MyBatis +MYSQL_学生宿舍管理小程序源码
当前位置:
article
> 正文
Credential Provider_credential provider 眼睛
作者:你好赵伟 | 2024-05-02 04:00:51
赞
踩
credential provider 眼睛
Windows操作系统的登录
WinXP利用GINA机制来登录,从Vista开始采用新的登录机制,名为Credential Provider.
在 Windows Vista 之前的环境中,每个会话都有一个 winlogon 实例,它负责控制该会话的交互式登录序列,它运行在Session 0. 计算机上已注册的 GINA 加载到 winlogon 进程空间中。(还可能加载一个称作“GINA 链接”的配置,但测试和支持这样的复杂配置很困难。)最后,GINA 调用 LogonUser 以及相关的身份验证 API。
在 Windows Vista 以后的系统中,Session 0 不再用于交互式登录.这有利于提高安全性,因为现在已有一个会话边界将所有的计算机进程与各个用户的进程分隔开来。此外,现在对内核全局命名空间的控制也更加严格,因为默认情况下由用户应用程序创建的对象已不在内核全局命名空间之内。
除Session 0 之外的每一个Session仍会有一个 winlogon 实例, 已通过新的 LogonUI 进程加载。
在由哪个组件负责显示登录图形界面方面也有一个重要的改动。以前,这是由 GINA 来处理的,因此,显示界面的工作可能一直由第三方组件来完成。在新的体系结构中,这是由操作系统的一个内置组件 LogonUI 来负责完成的。
新的Credential Provider机制由2部分组成
ICredentialProvider :
以ICredentialProvider 为父类的Provider对象,初始化时LogonUI会调用SetUsageScenario 函数来初始化环境,然后调用GetCredentialCount,GetCredentialAt 来得到此Provider下的所有的Credential对象,再调用GetFieldDescriptorCount,GetFieldDescriptorAt来得到Credential的UI描述.注意UI描述对于同一个Provider下的Credential都是相同的.
ICredentialProviderCredential :
以ICredentialProviderCredential 为父类的Credential对象,它表现为界面上某一个ICON区域.通过它,可以得到界面每个元素的类型和值.
ICredentialProviderFilter :
以ICredentialProviderFilter 为父类的Credential对象,它是一个过滤对象,可以指定在系统登录的时候,那些Provider是有效的,通过它可以实现只保留系统中一个或几个特殊Provider的效果.
Credential Provider注册
注册表结构类似如下形式
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers\{F617AF08-2856-419c-B4E5-2889C6B71EA9}]
@="SSCredProvider"
[HKEY_CLASSES_ROOT\CLSID\{F617AF08-2856-419c-B4E5-2889C6B71EA9}]
@="SSCredProvider"
[HKEY_CLASSES_ROOT\CLSID\{F617AF08-2856-419c-B4E5-2889C6B71EA9}\InprocServer32]
@="E:\\Sources\\SourceRoot\\trunk\\win32\\bin.debug\\SSCredProvider.dll"
"ThreadingModel"="Apartment"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters\{F617AF08-2856-419c-B4E5-2889C6B71EA9}]
@="SSCredProvider"
有几点需要注意:
1. Credential一般存在于Provider中,必须动态创建,利用COM的AddRef和Release机制来操作其生命周期.
2.Credential通过GetSerialize来登录系统,调用Lsa系列函数,例如LsaConnectUntrusted等,结果如果为NTSTATUS,可以调用HRESULT_FROM_NT来判断是否成功,HRESULT要用SUCESSED宏,而不能直接比较是否等于S_OK.
3.关于FieldDescriptor.每个Provider下的Credentials共享相同的FieldDescriptor,即一个Credential有几个UI元素,其余的Credentials也必须有相同的个数,但是每个Credentials可以通过GetFieldState 来调整自己的UI元素的状态.
SOURCE CODE :
http://download.csdn.net/detail/patdz/4265512
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/522103
推荐阅读
article
linux
驱动-
CCF
-1
provider
注册
时钟
...
struct clk_hw_onecell_data onecell 填充到struct of_clk_
provider
...
赞
踩
article
window7
登陆机制
CredentialProvider
_
windows7
credentia...
window7
登陆机制
CredentialProvider
example下面是我自己弄的一个例子,就是自定义wind...
赞
踩
article
自定义
windows
登录
认证(微软
Credential
Providers
详解一《调用原理》)_...
windows
登录
认证在不同的
windows
版本中有不同的方式。在xp中使用gina.dll,而在win7及以上版本使用...
赞
踩
article
Credential
Provider
_gina credentialprovider...
Windows操作系统的登录WinXP利用GINA机制来登录,从Vista开始采用新的登录机制,名为
Credential
...
赞
踩
article
Credential
provider
架构_
credential
provider
界面设计
...
下表是Windows7中的交互式登陆架构的关键组件:_
credential
provider
界面设计
credential
...
赞
踩
article
credential
Provider
简易改写攻略
_
如何编译sampleallcontrolscr...
本次小学期的题目是windows下的凭证改编。本人负责的是Win7 下的
credential
s
Provider
的编写...
赞
踩
article
微软
Credential
Providers
详解...
在 XP 时代,微软提供了 GINA 的接口来让我们对系统登录界面进行定制,在 Win7 以上系统中,微软提供了另外一种...
赞
踩
相关标签
linux
驱动开发
windows
认证
credential provider