Get Securityheader from Vault Login in AutoCAD

Get Securityheader from Vault Login in AutoCAD

ellmag
Explorer Explorer
3,558 Views
8 Replies
Message 1 of 9

Get Securityheader from Vault Login in AutoCAD

ellmag
Explorer
Explorer

I wonder if it is possible to get the securityheader from a Vault login in AutoCAD in the same way as in Inventor. In Inventor I add a reference to Connectivity.InventorAddin.EdmAddin.dll but I can' find a similiar reference for AutoCAD.  I have an AutoCAD add-in (written in .NET) that needs to fecth information from Autodesk Vault.

0 Likes
Accepted solutions (2)
3,559 Views
8 Replies
Replies (8)
Message 2 of 9

Redmond.D
Autodesk
Autodesk
Accepted solution

I believe there is another back-door for getting this information inside AutoCAD.  Like with the Inventor add-in, there is no official support for this technique.

 

If you use the following code from your add-in, you should be able to get the userId and ticket of the current Vault session.

 

if (VaultExplorerAppBase.Instance == null)

{

    throw new ApplicationException("Unable to get Vault connection");

}

VaultConnectionManager connectionMgr = VaultExplorerAppBase.Instance.VaultManager;

 

if (connectionMgr.Connection.IsSignedIn() == false)

{

    throw new ApplicationException("Vault connection doesn't exist.");

}

IWebServiceCredentials credentials = new UserIdTicketCredentials(connectionMgr.Connection.SecurityContext.RemoteHost,

  connectionMgr.Connection.SecurityContext.KnowledgeVault,

 connectionMgr.Connection.SecurityContext.UserID,

 connectionMgr.Connection.SecurityContext.Ticket);

 

 

It has dependency on following dlls (which are located in AutoCAD installation directory).  None of these DLLs are part of the supported Vault API.

Connectivity.Application.VaultBase.dll

Connectivity.Common.dll

Connectivity.Common.Vault.dll

Connectivity.Explorer.Framework.dll

Connectivity.Proxies.utils.dll



Doug Redmond
Software Engineer
Autodesk, Inc.

0 Likes
Message 3 of 9

Balaji_07
Advocate
Advocate

Hi Doug,

 

        I need to add a job to Job Processor from AutoCAD (Eg: Publish a drawing file). I have configured jobs and it was working fine with Inventor. Is it possible to do the same with AutoCAD. 

 

       I have gone through your post "http://forums.autodesk.com/t5/Autodesk-Vault-Customization/Get-Securityheader-from-Vault-Login-in-Au... Got no idea in acheiving my functionality.

 

       Can you provide some samples or reference documents to get vault instance from AutoCAD.

 

Thanks,

Balaji A

0 Likes
Message 4 of 9

Anonymous
Not applicable

I would like to use the code from above but I get the folowing error message:

Error 1 'Connectivity.Common.Vault.VaultConnectionManager' does not contain a definition for 'connection' and no extension method 'connection' accepting a first argument of type ....

 

How can I solve this issue, or is there an other way to check/use the current connection from the user in AutoCAD?

0 Likes
Message 5 of 9

wayne.brill
Collaborator
Collaborator

Hi,

 

For 2014 a different call needs to be made. I asked a colleague about this. Here is an excerpt of their reply:

 

>> >>

To get the connection the add-in is using, they can access the Connectivity.Application.VaultBase.ConnectionManager.Instance.Connection property. This will return the active connection that the Vault add-in is using at that time. If the add-in does not have a valid connection when this property is read, then I believe it will return null.

 << << 

 

I tested this out and made a blog post about it. (with an VB.NET AutoCAD project for download)

http://adndevblog.typepad.com/manufacturing/2013/09/autocad-2014-vault-add-in-connection.html

 

 

Thanks,



Wayne Brill
Developer Technical Services
Autodesk Developer Network

Message 6 of 9

Anonymous
Not applicable
Accepted solution

Hi Wayne,

 

Verry nice blog item.

I've edited the code to have a function that will return the connection or nothing instead.

Imports ADCFWV = Autodesk.DataManagement.Client.Framework.Vault
Module mod_LogIn
    Public Function GetMyVaultConnection() As ADCFWV.Currency.Connections.Connection
        Dim MyConnection = Connectivity.Application.VaultBase.ConnectionManager.Instance.Connection
        If Not MyConnection Is Nothing And MyConnection.IsConnected Then
            Return MyConnection
        Else
            Return Nothing
        End If
    End Function
End Module

 Regards

 

Peter

0 Likes
Message 7 of 9

rhesusminus
Mentor
Mentor

I'm trying to do this with Vault 2016, but there seems to have been some changes in the API...

Anyone knows how to update this code?


Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
0 Likes
Message 8 of 9

Balaji_07
Advocate
Advocate

Hello Trond,

 

You can retrieve Vault connection in ACAD 2016 using the following code

 

Add reference to "Connectivity.Application.VaultBase" from AutoCAD installation folder.

 

 Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection con = Connectivity.Application.VaultBase.ConnectionManager.Instance.Connection;

 

(code is same as Peter has posted, post more info on the error you receive)

 

Thanks,

Balaji A

 

Accept this post as Solution if  you found it usefull and do not forget to hit Kudos! Smiley Wink

0 Likes
Message 9 of 9

rhesusminus
Mentor
Mentor

Thank you. Works like a charm 🙂
Searched the Vault SDK help file, but didn't help much 🙂


Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
0 Likes