繁体   English   中英

如何获取已连接的Vault工作组用户的列表

[英]How to get a list of the connected vault workgroup users

我到处搜索,找不到所需的答案。 因此,感谢所有帮助。

在Autodesk的Vault工作组中,存在使用Vault工作组的用户划分的许可证。 但是,当所有许可证都使用完毕后,很难知道谁仍在登录,并且当前没有使用该库。

因此,要解决此问题,我想编写一个程序,该程序提供了已连接用户的列表。 到目前为止,我找到了一些代码来向我显示Vault工作组中的所有用户,但是该信息无用,因为我知道所有用户帐户。 我只需要当前连接的用户。

到目前为止我得到的代码:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void PrintUsers(object sender, RoutedEventArgs e)
    {
        MyVault.AdminSample.PrintUserInfo();
    }
}

class MyVaultServiceManager : System.IDisposable
{
    // We will incapsulate the WebServiceManager here.
    // The WebServiceManager will be used for our Vault server calls.
    private WebServiceManager _svcManager = null;
    public WebServiceManager Services
    { get { return _svcManager; } }

    public enum Mode { ReadOnly, ReadWrite };

    // Preventing usage of the default constructor - made it private
    private MyVaultServiceManager() { }

    // Constructor.
    // Parameter: - Log in as read-only, which doesn't consume 
    //              a license.
    //===============================================================
    public MyVaultServiceManager(Mode i_ReadWriteMode)
    {
        UserPasswordCredentials login = new UserPasswordCredentials(
                             "localhost", "Vault", "Administrator", "",
                             (i_ReadWriteMode == Mode.ReadOnly));
        // Yeah, we shouldn't hardcode the credentials here,
        // but this is just a sample
        _svcManager = new WebServiceManager(login);
    }


    void System.IDisposable.Dispose()
    {
        _svcManager.Dispose();
    }
}

class AdminSample
{
    // Lists all the users along with their roles and the vaults they 
    //   have access to.
    //===============================================================
    public static void PrintUserInfo()
    {
        try
        {
            using (MyVaultServiceManager mgr = new MyVaultServiceManager(
                                    MyVaultServiceManager.Mode.ReadOnly))
            {
                // The GetAllUsers method provides all the users' info
                //-----------------------------------------------------
                User[] users = mgr.Services.AdminService.GetAllUsers();

                TextWriter tmp = Console.Out;
                FileStream filestream = new FileStream("Vault_Users.txt", FileMode.Create);
                var streamwriter = new StreamWriter(filestream);
                streamwriter.AutoFlush = true;
                Console.SetOut(streamwriter);

                foreach (User user in users)
                {
                    UserInfo userInfo = mgr.Services.AdminService.GetUserInfoByUserId(user.Id);

                    Console.WriteLine(user.Name);

                    if (userInfo.Roles != null && userInfo.Roles.Length > 0)
                    {
                        Console.WriteLine("   Roles:");
                        foreach (Role role in userInfo.Roles)
                        {
                            Console.WriteLine("     ID: " + role.Id + " | Name: " + role.Name);
                        }
                    }

                    if (userInfo.Vaults != null && userInfo.Vaults.Length > 0)
                    {
                        Console.WriteLine("   Vaults:");
                        foreach (KnowledgeVault vault in userInfo.Vaults)
                        {
                            Console.WriteLine("     ID: " + vault.Id + " | Name: " + vault.Name);
                        }
                    }
                    Console.WriteLine("");
                }

                Console.SetOut(tmp);
                streamwriter.Close();
                filestream.Close();
                MessageBox.Show("Done!", "Completed!");

            } // using
        }
        catch (System.Exception e)
        {
            MessageBox.Show(e.Message);
        }
    } // PrintUserInfo()
}

当前尚无办法。 但是有些程序会从服务器读取AVFSlog文件,并过滤掉连接的用户。

读取AVFSlog文件的程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM