Autodesk Vault Programmer's Cookbook/Login/Log in to Vault
Problem
[edit | edit source]Establish Autodesk Vault connection.
Solution
[edit | edit source]Create WebServiceManager from Autodesk.Connectivity.WebServices.dll with credentials parameters.
#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)
Discussion
[edit | edit source]WebServiceManager is your gates to the garden of Vaulty API. And IWebServiceCredentials is a key to this gates.
You can create this key in at least 16 different ways (A-P) of getting IWebServiceCredentials.
After connection you can get next information about connection:
Method | Description |
---|---|
ReadOnly | Gets if the connection is read only. |
RequiresSignIn | Gets the value telling if a sign in is required before a service can be used. |
RequiresSignOut | Gets the value telling if a sign out should be called when the service goes out of scope. |
SecurityHeader | Gets the security header. |
ServerIdentities | Gets the server identity. |
SupportsSignIn | Gets the value telling if the credentials can sign in. |
SupportsSignOut | Gets the value telling if the credentials can sign out. |
UserName | Gets the username. |
VaultName | Gets the vault name. |
Connecting is quite simple operation, but its fundamental for any program that needs connect to Vault server. Here's algorithm, that describes logging with UserPasswordCredentials:
And here's "cmd edition", that handles errors and gives more verbose:
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}
And the best way to login - is certainly by using dialogs fromVDF.
#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)
As a result, you'll get a login dialog with the information you entered last time.