如何获取注册表中缓存的Visual Studio Online凭据?

卡梅隆·塔格特(Cameron Taggart)

登录Visual Studio 2013时,它会将您的配置文件和凭据缓存在注册表中:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\ConnectedUser\IdeUser\Cache
HKEY_CURRENT_USER\Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage\VisualStudio\IdeUser

使用TFS API向Visual Studio Online进行身份验证时,它将凭据复制到:

HKEY_CURRENT_USER\Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage\VisualStudio\VssApp

use tfs = new TfsTeamProjectCollection(Uri "https://ctaggart.visualstudio.com/DefaultCollection")
tfs.Authenticate()

如何使用Visual Studio或TFS API在C#或F#中使用这些值?

我已经收集到Vss可能意味着Visual Studio Services。有一个Microsoft.VisualStudio.Services.Common。CredentialsCacheManager和Microsoft.TeamFoundation.Client中的另一个,但我不确定如何使用两者。它具有一个ContainCredentials,GetCredentials和DeleteCredentials,因此看起来很有希望。GetCredentials返回一个TfsCredentialCacheEntry,它具有Credentials属性来获取System.Net.NetworkCredential,这正是我要寻找的。

我不知道如何使用CredentialsCacheManager,但这是我尝试的方法。

let ccm = Microsoft.TeamFoundation.Client.CredentialsCacheManager(@"Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage\VisualStudio", false)
ccm.ContainsCredentials("IdeUser", Uri "ideuser:https://app.vssps.visualstudio.com:vssuser:federated")

使用Process Monitor,它表明CredentialsCacheManager不是我想要的,或者我不知道如何使用它:

代码的过程监控器

卡梅隆·塔格特(Cameron Taggart)

我想到了。Microsoft.TeamFoundation.Client.TfsClientCredentialStorage具有我要的东西。我将所有示例代码按照要点放在F#脚本中我也会在这里复制它:

#r "Microsoft.TeamFoundation.Client"
#r "Microsoft.VisualStudio.Services.Common"
#r "System.Net.Http"

open System
open Microsoft.TeamFoundation.Client

// retrieve VssToken

// for the logged in user "IdeUser"
let vssTokenIdeUser = TfsClientCredentialStorage.RetrieveConnectedUserToken()

let tokenStorage = Microsoft.VisualStudio.Services.Common.TokenStorage.VssTokenStorageFactory.GetTokenStorageNamespace "VisualStudio"
let vssTokens = tokenStorage.RetrieveAll "VssApp" |> Array.ofSeq
for t in vssTokens do
    printfn "%s %s %s %s" t.Resource t.Type (t.GetProperty "UserId") (t.GetProperty "UserName")

// create a TfsClientCredentials by retrieving an IssuedToken

let ccs = TfsClientCredentialStorage()
let ct = ccs.RetrieveToken(Uri "https://ctaggart.visualstudio.com", Microsoft.VisualStudio.Services.Common.VssCredentialsType.Federated) :?> CookieToken
let cc = CookieCredential(false, ct)
let tcc = TfsClientCredentials cc

// use the TfsClientCredentials to authenticate with 

let tfs = new TfsTeamProjectCollection(Uri "https://ctaggart.visualstudio.com/DefaultCollection", tcc)
tfs.Authenticate()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我可以以编程方式连接到没有凭据的Visual Studio Online项目?

来自分类Dev

为什么我可以在没有凭据的情况下以编程方式连接到Visual Studio Online项目?

来自分类Dev

如何使用Visual Studio 2019设置私有Nuget软件包注册表?

来自分类Dev

如何从注册表中知道安装了哪个Visual Studio Edition?

来自分类Dev

无法在Visual Studio中的WIX安装项目中找到文件系统,注册表图标

来自分类Dev

Time tracking in Visual Studio Online

来自分类Dev

显示Visual Studio Online选项

来自分类Dev

Visual Studio Online是PaaS吗?

来自分类Dev

从Visual Studio Online移至github

来自分类Dev

Visual Studio Online上的OpenCover

来自分类Dev

显示Visual Studio Online选项

来自分类Dev

Visual Studio Online中的时间跟踪

来自分类Dev

在Visual Studio Online中删除中间提交

来自分类Dev

在Visual Studio Online中构建Cordova应用

来自分类Dev

如何在Visual Studio Online中创建多个项目集合?

来自分类Dev

如何为jenkins传递凭据以将docker映像推送到我自己的注册表中?

来自分类Dev

如何将用户凭据从控制台传递到SharePoint Online?

来自分类Dev

如何将用户凭据从控制台传递到SharePoint Online?

来自分类Dev

“以其他用户身份运行” Visual Studio,无法清除缓存的TFS凭据

来自分类Dev

Visual Studio Team Explorer丢失了Visual Studio Online的Git授权

来自分类Dev

从Visual Studio 2010连接到Visual Studio Online 2013

来自分类Dev

OpsHub TFS 2010到Visual Studio Online

来自分类Dev

使SlowCheetah转换Visual Studio Online上的文件

来自分类Dev

将TeamCity连接到Visual Studio Online

来自分类Dev

使用Visual Studio Online的SlowCheetah转换失败

来自分类Dev

从Visual Studio Online更改Azure AD支持

来自分类Dev

Visual Studio Online迁移(从VSO到VSO)

来自分类Dev

使用Visual Studio Online构建/发布工件

来自分类Dev

Visual Studio Online构建服务,git标签

Related 相关文章

  1. 1

    为什么我可以以编程方式连接到没有凭据的Visual Studio Online项目?

  2. 2

    为什么我可以在没有凭据的情况下以编程方式连接到Visual Studio Online项目?

  3. 3

    如何使用Visual Studio 2019设置私有Nuget软件包注册表?

  4. 4

    如何从注册表中知道安装了哪个Visual Studio Edition?

  5. 5

    无法在Visual Studio中的WIX安装项目中找到文件系统,注册表图标

  6. 6

    Time tracking in Visual Studio Online

  7. 7

    显示Visual Studio Online选项

  8. 8

    Visual Studio Online是PaaS吗?

  9. 9

    从Visual Studio Online移至github

  10. 10

    Visual Studio Online上的OpenCover

  11. 11

    显示Visual Studio Online选项

  12. 12

    Visual Studio Online中的时间跟踪

  13. 13

    在Visual Studio Online中删除中间提交

  14. 14

    在Visual Studio Online中构建Cordova应用

  15. 15

    如何在Visual Studio Online中创建多个项目集合?

  16. 16

    如何为jenkins传递凭据以将docker映像推送到我自己的注册表中?

  17. 17

    如何将用户凭据从控制台传递到SharePoint Online?

  18. 18

    如何将用户凭据从控制台传递到SharePoint Online?

  19. 19

    “以其他用户身份运行” Visual Studio,无法清除缓存的TFS凭据

  20. 20

    Visual Studio Team Explorer丢失了Visual Studio Online的Git授权

  21. 21

    从Visual Studio 2010连接到Visual Studio Online 2013

  22. 22

    OpsHub TFS 2010到Visual Studio Online

  23. 23

    使SlowCheetah转换Visual Studio Online上的文件

  24. 24

    将TeamCity连接到Visual Studio Online

  25. 25

    使用Visual Studio Online的SlowCheetah转换失败

  26. 26

    从Visual Studio Online更改Azure AD支持

  27. 27

    Visual Studio Online迁移(从VSO到VSO)

  28. 28

    使用Visual Studio Online构建/发布工件

  29. 29

    Visual Studio Online构建服务,git标签

热门标签

归档