跳轉到內容

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)

這樣,您將獲得一個登入對話方塊,其中包含上次輸入的資訊。

華夏公益教科書