[英]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文件,並過濾掉連接的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.