跳转到内容

Autodesk Vault 程序员手册/登录/登录 Vault

25% developed
来自维基教科书,开放的书籍,为开放的世界

建立 Autodesk Vault 连接。

解决方案

[编辑 | 编辑源代码]

使用凭据参数从 Autodesk.Connectivity.WebServices.dll 创建 WebServiceManager。

#Connecting dll
Add-Type -Path "C:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.Connectivity.WebServices.dll"
#Retreiving read-only credentials
$cred = New-Object Autodesk.Connectivity.WebServicesTools.UserPasswordCredentials ("localhost", "Vault", "Administrator", "", $true)
#Creating manager
$webSvc = New-Object Autodesk.Connectivity.WebServicesTools.WebServiceManager ($cred)

WebServiceManager 是您通往 Vault API 花园的大门。而 IWebServiceCredentials 是这扇门的钥匙。
您可以通过至少 16 种不同的方式(A-P)获得 IWebServiceCredentials。

与 Autodesk Vault 2014 API 建立连接的方式

连接后,您可以获取有关连接的更多信息

方法 描述
ReadOnly 获取连接是否为只读。
RequiresSignIn 获取一个值,指示在使用服务之前是否需要登录。
RequiresSignOut 获取一个值,指示当服务超出范围时是否应调用注销。
SecurityHeader 获取安全标头。
ServerIdentities 获取服务器标识。
SupportsSignIn 获取一个值,指示凭据是否可以登录。
SupportsSignOut 获取一个值,指示凭据是否可以注销。
UserName 获取用户名。
VaultName 获取 Vault 名称。

连接是一个非常简单的操作,但对于任何需要连接到 Vault 服务器的程序来说都是基础。这是一个使用 UserPasswordCredentials 登录的算法
这是一个“cmd 版本”,它可以处理错误并提供更多详细的信息

param ($help,$VServer,$VVault,$VUser,$VPass,$VOut)

$WebServicesPath2014="C:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.Connectivity.WebServices.dll"

if ($help)
{
"Login Vault with read-only connection`n"
"Usage:"
"  Login-VaultServer.ps1 -Vserver <server address> -VVault <vault name> -VUser <username> [-VPass <password>]`n"
"Arguments:"
"  -Vserver		Autodesk Vault server name. In any format: IP, DNS, IP:port, DNS:port."
"  -VVault		Vault name."
"  -VUser		Registered user name."
"  -VPass		Password."
"`nExample:"
"  powershell .\Export-FileCategories.ps1 -Vserver localhost -VVault Vault -VUser Administrator -VPass pass`n"
exit
}
else{
	if (!$VServer -or !$VVault -or !$VUser){"Invalid arguments. Use 'help' argument for more help"
	exit}
}

try
	{
	"Trying to find Vault 2014 dll"
	Add-Type -Path $WebServicesPath2014 #Vault 2014
	}
Catch
	{
	"No dlls were found. Edit script or contact author."
	exit
	}	

"Found - executing"
try{
$cred = New-Object Autodesk.Connectivity.WebServicesTools.UserPasswordCredentials ($VServer,$VVault,$VUser,$VPass,$true)
$webSvc = New-Object Autodesk.Connectivity.WebServicesTools.WebServiceManager ($cred)
Write-Output $webSvc
}
Catch
{"Login failed"
exit}

当然,最佳的登录方式是使用 VDF 中的对话框。

#Connect dll
Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
 
#Call login dialog and workflow, get credentials on successful login 
$g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)

这样,您将获得一个登录对话框,其中包含上次输入的信息。

华夏公益教科书