Networkcredentials 使用intranet应用程序存储和获取通用凭据

Networkcredentials 使用intranet应用程序存储和获取通用凭据,networkcredentials,Networkcredentials,我开发了一个Intranet应用程序,它需要实现从本地存储库(在web服务器的磁盘上)到远程存储库的“git推送”。 我从web服务器启动git进程,它在IIS池标识下运行,IIS池标识是web服务器计算机的administrators组的域帐户成员。 Git需要用户凭据来执行推送操作。我集成了git credential winstore的自定义版本。此程序使用Windows凭据管理器存储网站的通用凭据。但是,当调用凭证写入时,我得到错误: Failed to write credential

我开发了一个Intranet应用程序,它需要实现从本地存储库(在web服务器的磁盘上)到远程存储库的“git推送”。 我从web服务器启动git进程,它在IIS池标识下运行,IIS池标识是web服务器计算机的administrators组的域帐户成员。 Git需要用户凭据来执行推送操作。我集成了git credential winstore的自定义版本。此程序使用Windows凭据管理器存储网站的通用凭据。但是,当调用凭证写入时,我得到错误:

Failed to write credential: A specified logon session does not exist. It may already have been terminated
我检查了策略“网络访问:不允许存储用于网络身份验证的密码和凭据”,该策略已禁用


这里出了什么问题?

池帐户需要访问其用户配置文件。 因此,我们需要一次性连接到Windows会话以创建用户配置文件(我认为这是必要的)。接下来,在专用应用程序池的高级设置中,将“加载用户配置文件”=true


关于凭据的注意事项:必须更改Windows凭据目标才能在同一Windows vault中管理不同的用户。我将“git:”更改为“git_USERID:”。

我将此属性设置为“已启用”,现在它可以工作了,也许它也可以为您工作:


这里有没有人有使用Windows vault的经验?我想知道是否真的有可能在没有用户打开会话的情况下使用它。每个人都说我们需要保持它的禁用状态,这样它才能工作。你倒过来说?