/// <summary> /// 设置客户端MFiles连接 /// </summary> /// <param name="user"></param> /// <param name="vault"></param> public static Vault GetUserVault1(UserDto user, VaultDto vault) { if (VaultGuids.Contains(vault.Guid)) { return(GetVault(user, vault.Guid)); } var server = vault.Server; var conn = new VaultConnection(); var domain = user.Domain; conn.AuthType = MFAuthType.MFAuthTypeSpecificWindowsUser; conn.AutoLogin = false; conn.NetworkAddress = server.Ip; // "192.168.2.129"; conn.Endpoint = server.Port; // "2266"; conn.Name = vault.Name; //"我的云盘"; conn.ServerVaultName = vault.Name; // "示例库"; conn.ServerVaultGUID = vault.Guid; // "{08ED46E7-C0FF-4D16-BA38-5043144CCD15}"; conn.UserName = user.UserName; // "qiuge"; conn.Password = user.Password; // "sd2350139"; conn.Domain = domain; // "simuladesign"; conn.UserSpecific = true; conn.ProtocolSequence = "ncacn_ip_tcp"; var app = new MFilesClientApplication(); var conns = app.GetVaultConnections(); var connsSameName = new VaultConnections(); foreach (VaultConnection co in conns) { var coGUID = co.ServerVaultGUID; if (coGUID == conn.ServerVaultGUID) // && co.Name == conn.Name { connsSameName.Add(-1, co); } } if (connsSameName.Count > 0) { foreach (VaultConnection co in connsSameName) { app.RemoveVaultConnection(co.Name, co.UserSpecific); } } app.AddVaultConnection(conn); Vault mfVault = null; try { // Writelog(string.Format(" in getuservault1,userName={0}, pwd={1}, domai={2}", user.UserName, user.Password, domain)); mfVault = LoginVault(conn, user.UserName, user.Password, domain); } catch { } VaultGuids.Add(vault.Guid); return(mfVault); }
/// <summary> /// 获取MFiles中的库 /// </summary> /// <param name="guid">唯一标示</param> /// <returns></returns> public static Vault GetVaultWithGuid(string guid) { Vault vault = null; var clientApp = new MFilesClientApplication(); VaultConnections conns = clientApp.GetVaultConnections(); foreach (VaultConnection vConn in conns) { if (vConn.GetGUID() == guid) { vault = vConn.BindToVault(IntPtr.Zero, true, true); break; } } return(vault); }
/// <summary> /// 对"参数oVault是否有效"进行核实,若登出,则重连 /// </summary> /// <param name="oVault">MFilesAPI.Vault</param> /// <param name="user"></param> /// <param name="vaultGuid">客户端库GUID</param> public static Vault Connect2Vault(Vault oVault, UserDto user, string vaultGuid) { // Writelog(string.Format(" in Connect2Vault,userName={0}, pwd={1}, domai={2}", user.UserName, user.Password, user.Domain)); Vault vault = oVault; if (!oVault.LoggedIn) { var clientApp = new MFilesClientApplication(); VaultConnections conns = clientApp.GetVaultConnections(); foreach (VaultConnection vConn in conns) { if (vConn.GetGUID() == vaultGuid) { vault = LoginVault(vConn, user.UserName, user.Password, user.Domain); break; } } } return(vault); }
/// <summary> /// 连接MFiles库 /// </summary> /// <returns>MFiles 对象Vault</returns> public static Vault GetVault(UserDto user, string vaultGuid, bool login = true) { //string vaultName = "设计云"; Vault vault = null; var clientApp = new MFilesClientApplication(); VaultConnections conns = clientApp.GetVaultConnections(); string domain = user.Domain; // Writelog(string.Format(" in GetVault,userName={0}, pwd={1}, domai={2}", user.UserName, user.Password, user.Domain)); foreach (VaultConnection vConn in conns) { if (vConn.GetGUID() == vaultGuid) { var loggedIn = vConn.IsLoggedIn(); if (!loggedIn && !login) { return(null); } if (vConn.IsLoggedIn()) { vault = vConn.BindToVault(IntPtr.Zero, true, true); string account = (domain == "" ? user.UserName : domain + "\\" + user.UserName); if (vault.SessionInfo.AccountName != account) { vault.LogOutWithDialogs(IntPtr.Zero); vault = LoginVault(vConn, user.UserName, user.Password, domain); } } else { vault = LoginVault(vConn, user.UserName, user.Password, domain); } break; } } return(vault); }