| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1983 人关注过本帖, 1 人收藏
标题:请问如何在windows 凭据管理器中添加凭据?
取消只看楼主 加入收藏
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:16 
请问如何在windows 凭据管理器中添加凭据?
**这个是windows 凭据管理代码,在控制面板里选凭据管理器,然后添加windows 凭据
clea
Declare Integer  CredWriteA IN Advapi32 string @PCREDENTIALA_Credential,long Flags
Declare Integer CredReadA IN Advapi32  string TargetName,long Type,long Flags,long @Credential
Declare Integer CredDeleteA  IN Advapi32 string TargetName,long Type,long  Flags
tn="192.168.10.181"
*?CredDeleteA(tn,2,0)  &&2,密码凭据,删除凭据,正确
stt=0
?CredReadA(tn,2,0,@stt)  &&读取凭据,正确,但还不会各参数分离
st2=SYS(2600,stt,1024)
?st2
?CTOBIN(SUBSTR(st2,1,4),"4rs")
?CTOBIN(SUBSTR(st2,5,4),"4rs")

?CredWriteA(?,0)  &&写入凭据,不会,请指教

retu
搜索更多相关主题的帖子: long 管理器 windows 添加 Integer 
2022-06-23 15:39
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;
先搞懂读取
读取后个参数解析
?CTOBIN(SUBSTR(st2,1,4),"4rs")  &&好像正确
?CTOBIN(SUBSTR(st2,5,4),"4rs")  &&好像正确
剩下的就不知道怎么分离了


[此贴子已经被作者于2022-6-23 17:13编辑过]

2022-06-23 17:11
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
好的,谢谢,我先试试
2022-06-24 08:17
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
咱们是通样的问题
2022-06-24 10:01
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
我现在准备搜点资料,来个自动添加、删除、读取
2022-06-24 10:02
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
Declare Integer CredReadA IN Advapi32  string TargetName,long Type,long Flags,long @Credential
tn="192.168.10.181"

stt=0
?CredReada(tn,2,0,@stt)  &&读取凭据,正确,但还不会各参数分离
st2=SYS(2600,stt,520)

?STREXTRACT(SYS(2600,CTOBIN(SUBSTR(st2,9,4),"4rs"),40),"",CHR(0))  &&位置全靠猜
?STREXTRACT(SYS(2600,CTOBIN(SUBSTR(st2,49,4),"4rs"),40),"",CHR(0))  &&位置全靠猜
?"密码不知道在哪里取"
2022-06-24 12:47
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
这个好像更接近真相,但密码在哪里呢?
clea
DECLARE INTEGER FileTimeToLocalFileTime IN KERNEL32.DLL ;
    STRING lpFileTime, ;
    STRING @ lpLocalFileTime
DECLARE INTEGER FileTimeToSystemTime IN KERNEL32.DLL ;
    STRING lpFileTime, ;
    STRING @ lpSystemTime
Declare Integer CredReadA IN Advapi32  string TargetName,long Type,long Flags,long @Credential
tn="192.168.10.181"

stt=0
?CredReada(tn,2,0,@stt)  &&读取凭据,正确,但还不会各参数分离
st2=SYS(2600,stt,520)
?CTOBIN(SYS(2600,stt,4),"4rs")
?CTOBIN(SYS(2600,stt+4,4),"4rs")
?STREXTRACT(SYS(2600,CTOBIN(SYS(2600,stt+8,4),"4rs"),256),"",CHR(0))
*?SYS(2600,CTOBIN(SYS(2600,stt+12,4),"4rs"),100)  &&不知道这个为什么不对
lTime =REPLICATE(CHR(0),8)
FileTimeToLocalFileTime(SYS(2600,stt+16,8), @LTime)
?FTime2SysTime(LTime)
?CTOBIN(SYS(2600,stt+24,4),"4rs")
?CTOBIN(SYS(2600,stt+28,4),"4rs")
?CTOBIN(SYS(2600,stt+32,4),"4rs")
?CTOBIN(SYS(2600,stt+36,4),"4rs")
?CTOBIN(SYS(2600,stt+40,4),"4rs")
?CTOBIN(SYS(2600,stt+44,4),"4rs")
?STREXTRACT(SYS(2600,CTOBIN(SYS(2600,stt+48,4),"4rs"),256),"",CHR(0))
retu

FUNCTION FTime2SysTime
lPARAMETERS sFileTime
LOCAL sSystemTime,rc,wYear,wMonth,wDayOfWeek,wDay,wHour,wMinute,wSecond,wMilliseconds,sDateTime
sSystemTime = REPLICATE(CHR(0),16)
rc = FileTimeToSystemTime(sFileTime, @sSystemTime)
wYear         = ctobin(SUBSTR(sSystemTime, 1,2),"2rs")
wMonth        = ctobin(SUBSTR(sSystemTime, 3,2),"2rs")
wDayOfWeek    = ctobin(SUBSTR(sSystemTime, 5,2),"2rs")
wDay          = ctobin(SUBSTR(sSystemTime, 7,2),"2rs")
wHour         = ctobin(SUBSTR(sSystemTime, 9,2),"2rs")
wMinute       = ctobin(SUBSTR(sSystemTime, 11,2),"2rs")
wSecond       = ctobin(SUBSTR(sSystemTime, 13,2),"2rs")
wMilliseconds = ctobin(SUBSTR(sSystemTime, 15,2),"2rs")
sDateTime = trans(wYear) + [.] + trans(wMonth,"@l 99") + [.] + trans(wDay,"@l 99") + [ ] + ;
    trans(wHour, "@l 99") + [:] + trans(wMinute, "@l 99") + [:] + trans(wSecond, "@l 99") + [.] + trans(wMilliseconds,"@l 999")
RETURN IIF(rc=1,sDateTime,SPACE(23))

[此贴子已经被作者于2022-6-24 14:58编辑过]

2022-06-24 14:44
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
回复 9楼 吹水佬
stt就是那个结构体的指针
2022-06-24 14:46
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
回复 12楼 吹水佬
图片附件: 游客没有浏览图片的权限,请 登录注册

成功了,但你这个是添加的普通凭据,如果改成windows凭据(#define CRED_TYPE_DOMAIN_PASSWORD           2)就获取不了密码,不知道为什么
2022-06-24 15:13
sych
Rank: 4
等 级:业余侠客
威 望:7
帖 子:235
专家分:286
注 册:2019-10-11
收藏
得分:0 
存在的,手工添加的
另外一个问题,用你上面的代码,把类型改成2,可以添加到windows凭据,但似乎不正常,手工编辑密码后保存就正确了,估计哪里地方不对
2022-06-24 16:07
快速回复:请问如何在windows 凭据管理器中添加凭据?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016456 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved