2015-03-16 2 views
0

Я искал все и не смог найти ответ, который мне нужен. Поэтому вся помощь приветствуется.Как получить список подключенных пользователей рабочей группы хранилища

В рабочей группе хранилищ от Autodesk есть лицензии, разделенные на пользователей, которые используют рабочую группу хранилища. Но когда используются все лицензии, трудно узнать, кто все еще зарегистрирован, что на данный момент не использует хранилище.

Чтобы решить эту проблему, я хотел бы написать программу, которая дает мне список подключенных пользователей. До сих пор я нашел код, который показывал мне всех пользователей из рабочей группы хранилища, но эта информация бесполезна, потому что я знаю все учетные записи пользователей. Мне просто нужны подключенные пользователи.

код У меня до сих пор:

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() 
} 

ответ

0

В настоящее время нет никакого способа сделать это. Но есть программы, которые читают файлы AVFSlog с сервера и отфильтровывают подключенных пользователей.

Program that reads AVFSlog File

Смежные вопросы