You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows凭据管理器存储凭据的数量是否存在限制?

Windows凭据管理器凭据存储数量限制说明

核心结论

  • 你找到的微软官方文档中提到的每应用500个凭据的默认限制,是适用于整个Windows凭据管理器的通用规则,并非仅针对RDP场景。
  • 该限制以调用CredWriteW的进程(按可执行文件路径标识)为单位统计,不同应用的凭据计数相互独立。

关键细节补充

  • 当你存储CRED_TYPE_DOMAIN_PASSWORD类型的凭据时,所有通过同一进程调用CredWriteW写入的凭据,都会被计入该进程对应的应用配额。
  • 超出限制时,CredWriteW会返回错误码ERROR_NOT_ENOUGH_QUOTA(数值1816),可在错误处理逻辑中捕获该错误,执行清理旧凭据或提示用户等操作。
  • 关于持久化设置:你当前代码中使用的CRED_PERSIST_SESSION仅能保证凭据在当前用户会话内有效,若要实现跨用户会话持久化,需将Persist字段改为CRED_PERSIST_LOCAL(适用于本地用户,凭据存储在本地机器)或CRED_PERSIST_ENTERPRISE(适用于域用户,可跨设备同步)。

你的参考代码(标注持久化修正点)

CREDENTIAL credential = {0};
credential.Type = CRED_TYPE_DOMAIN_PASSWORD;
credential.TargetName = account;
credential.CredentialBlobSize = credentialBlobSize;
credential.CredentialBlob = (LPBYTE)password;
// 修正:CRED_PERSIST_SESSION仅会话内有效,跨会话持久化需替换为以下两者之一
// credential.Persist = CRED_PERSIST_LOCAL;
// credential.Persist = CRED_PERSIST_ENTERPRISE;
credential.Persist = CRED_PERSIST_SESSION;
credential.UserName = (LPWSTR)userName;

// 写入用户空间凭据
if (!CredWriteW(&credential, 0))
{
    // 可添加错误码检查:
    // DWORD err = GetLastError();
    // if (err == ERROR_NOT_ENOUGH_QUOTA) { /* 处理超限逻辑 */ }
}

内容的提问来源于stack exchange,提问作者andre_ss6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:55:16