Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }