FC SDK 公共返回值。
        /// <summary>
        /// 添加角色
        /// </summary>   
        /// <example>
        /// <para>AddRoleReq req = new AddRoleReq();</para> 
        /// <para>req.roleName = "role";</para>
        /// <para>List&lt;string> doms = new List&lt;string>();</para>
        /// <para>doms.Add("007.002");</para>
        /// <para>req.popedom = doms;</para>
        /// <para>SDKCommonResp resp = user.AddRole(req);</para>
        /// </example>
        /// <param name="req">【必选】待添加角色的相关参数</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp AddRole(AddRoleReq req)
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("POST", "/service/roles/add", req, bean, "AddRole");
            log.Info("AddRole result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 取消任务
        /// </summary>   
        /// <example>
        /// <para>SDKCommonResp resp = task.Cancel("/service/sites/4D9D0815/tasks/6008");</para>
        /// </example>
        /// <param name="taskUri">【必选】任务Uri</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp Cancel(string taskUri)
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("POST", taskUri + "/cancel", null, bean, "Cancel");
            log.Info("Cancel result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 重置用户密码
        /// </summary>  
        /// <example>
        /// <para>ResetPasswordReq req = new ResetPasswordReq();</para> 
        /// <para>req.password = "******";</para>
        /// <para>req.userId = "6df34c0a-00e4-4c35-b4d2-318a7d07d870";</para>   
        /// <para>SDKCommonResp resp = user.ResetPassword(req);</para>
        /// </example>
        /// <param name="req">【必选】重置用户密码相关参数</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp ResetPassword(ResetPasswordReq req)
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("POST", "/service/users/password/reset", req, bean, "ResetPassword");
            log.Info("ResetPassword result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 设置用户角色。注:该接口仅在账户安全类型为高安全模式下使用,该参数在环境搭建时可选择。
        /// </summary>  
        /// <example>
        /// <para>SetUserRolesReq req = new SetUserRolesReq();</para> 
        /// <para>List&lt;string> list = new List&lt;string>();</para>
        /// <para>list.Add("administrator");</para>   
        /// <para>req.roles = list;</para>   
        /// <para>req.rightType = 1;</para>
        /// <para>SDKCommonResp resp = user.SetUserRoles("4ec849f3-e612-46b4-a040-ca0a9c39dfa6", req);</para>
        /// </example>
        /// <param name="userId">【必选】用户ID</param>
        /// <param name="req">【必选】需要设置的角色相关参数</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp SetUserRoles(string userId, SetUserRolesReq req)
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("POST", "/service/users/" + userId + "/setRoles", req, bean, "SetUserRoles");
            log.Info("SetUserRoles result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 删除用户
        /// </summary>   
        /// <example>
        /// <para>SDKCommonResp resp = user.RemoveUser("cac9bbb8-fd56-4986-84e0-4df879db3d38");</para>
        /// </example>
        /// <param name="userId">【必选】用户ID</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp RemoveUser(string userId)
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("DELETE", "/service/users/" + userId, null, bean, "RemoveUser");
            log.Info("RemoveUser result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 删除角色
        /// </summary>     
        /// <example>
        /// <para>SDKCommonResp resp = user.RemoveRole("remove");</para>
        /// </example>
        /// <param name="roleName">【必选】角色名称</param>
        /// <returns>处理结果</returns>
        public SDKCommonResp RemoveRole(string roleName)
        {
            SDKCommonResp resp = new SDKCommonResp();
            RemoveRoleReq req = new RemoveRoleReq();
            req.roleName = roleName;

            string result = RestClientUtil.sendRequest("POST", "/service/roles/rmv", req, bean, "RemoveRole");
            log.Info("RemoveRole result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }
        /// <summary>
        /// 登录请求
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="bean">服务端配置</param> 
        /// <param name="methodName">方法名</param>
        /// <returns>登录结果</returns>
        public static string loginRequest(string userName, string password, ClientProviderBean bean, string methodName)
        {
            if (!CheckParam(bean))
            {
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                return JsonConvert.SerializeObject(result);
            }
            string uri = bean.serverUrl + "/service/session";
            Uri address = new Uri(uri);
            log.Info(methodName + " request Url :" + address);

            if (bean.serverUrl.StartsWith("https"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            }

            // Create the web request
            HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
            request.Proxy = null;
            //超时时间10s
            request.Timeout = 10000;
            request.KeepAlive = false;

            // Set type
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";

            request.Accept = "application/json;version=5.0;charset=UTF-8";

            request.Headers.Add("Accept-Language", "zh_CN");

            request.Headers.Add("X-Auth-User", userName);

            string pwd = SHA256Util.SHA256Encrypt(password);

            request.Headers.Add("X-Auth-Key", pwd);

            byte[] byteData = UTF8Encoding.UTF8.GetBytes("{}");
            try
            {
                using (Stream writeStream = request.GetRequestStream())
                {
                    writeStream.Write(byteData, 0, byteData.Length);
                    writeStream.Flush();
                    writeStream.Close();
                }
            }
            catch (Exception e)
            {
                LogUtil.WriteLog(log, "error", string.Format("connect server exception, {0}", e.ToString()));
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                result.errorDes = string.Format("connect server exception, {0}", e.ToString());
                return JsonConvert.SerializeObject(result);
            }

            // Get response
            HttpWebResponse response = null;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException e)
            {
                response = (HttpWebResponse)e.Response;
            }

            if (null == response)
            {
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                return JsonConvert.SerializeObject(result);
            }

            string resp = "";
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")))
            {
                resp = reader.ReadToEnd();
                reader.Close();
            }
            if (!String.IsNullOrEmpty(response.Headers["X-Auth-Token"]))
            {
                string tokenId = response.Headers["X-Auth-Token"];
                ClientCacheBean.saveAuthCache(bean, tokenId);
            }

            return resp;
        }
        /// <summary>
        /// 发送rest消息
        /// </summary>
        /// <param name="methodType">方法类型</param>
        /// <param name="uri">REST URI</param>
        /// <param name="requestBody">请求body</param>
        /// <param name="bean">服务端配置</param>  
        /// <param name="methodName">方法名</param>
        /// <returns>返回结果</returns>
        public static string sendRequest(string methodType, string uri, Object requestBody, ClientProviderBean bean,string methodName)
        {
            if (!CheckParam(bean))
            {
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                return JsonConvert.SerializeObject(result);
            }

            Uri address = null;
            try
            {
                address = new Uri(bean.serverUrl + uri);
                log.Info(methodName+" request Url :" + address);
            }
            catch
            {
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                return JsonConvert.SerializeObject(result);
            }

            if (bean.serverUrl.StartsWith("https"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            }

            // Create the web request
            HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
            request.Proxy = null;
            //超时时间10s
            request.Timeout = 10000;

            // Set type
            request.Method = methodType;
            request.ContentType = "application/json;charset=UTF-8";

            request.Accept = "application/json;version=5.0;charset=UTF-8";

            request.Headers.Add("Accept-Language", "zh_CN");

            request.Headers.Add("X-Auth-Token", ClientCacheBean.getAuthToken(bean));

            if ("POST".Equals(methodType) || "PUT".Equals(methodType))
            {
                string requestStr = JsonUtil.JsonSerializer(requestBody);
                log.Info(methodName+" request Body :" + LogUtil.ReplayLog(requestStr));
                byte[] byteData = UTF8Encoding.UTF8.GetBytes(requestStr);
                try
                {
                    using (Stream writeStream = request.GetRequestStream())
                    {
                        writeStream.Write(byteData, 0, byteData.Length);
                        writeStream.Flush();
                        writeStream.Close();
                    }
                }
                catch (Exception e)
                {
                    LogUtil.WriteLog(log, "error", string.Format("connect server exception, {0}", e.ToString()));
                    SDKCommonResp result = new SDKCommonResp();
                    result.errorCode = "2130000404";
                    return JsonConvert.SerializeObject(result);
                }
            }

            // Get response
            HttpWebResponse response = null;
            try
            {

                response = (HttpWebResponse)request.GetResponse();

            }
            catch (WebException e)
            {
                response = (HttpWebResponse)e.Response;
            }

            if (null == response || response.StatusCode == HttpStatusCode.NotFound)
            {
                SDKCommonResp result = new SDKCommonResp();
                result.errorCode = "2130000404";
                return JsonConvert.SerializeObject(result);
            }

            string resp = "";
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")))
            {
                resp = reader.ReadToEnd();
                reader.Close();
            }

            if ( response.StatusCode == HttpStatusCode.OK && (String.IsNullOrEmpty(resp) || "{}".Equals(resp)))
            {
                SDKCommonResp result = new SDKCommonResp();
                resp = JsonConvert.SerializeObject(result);
            }
            return resp;
        }
        /// <summary>
        /// 退出
        /// </summary>
        /// <example>
        /// <para>LoginResp resp = auth.Logout();</para>
        /// </example>
        /// <returns>退出结果</returns>
        public SDKCommonResp Logout()
        {
            SDKCommonResp resp = new SDKCommonResp();

            string result = RestClientUtil.sendRequest("DELETE", "/service/session", null, bean, "Logout");
            log.Info("Logout result : " + result);
            resp = JsonConvert.DeserializeObject<SDKCommonResp>(result);

            return resp;
        }