/// <summary> /// 添加角色 /// </summary> /// <example> /// <para>AddRoleReq req = new AddRoleReq();</para> /// <para>req.roleName = "role";</para> /// <para>List<string> doms = new List<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<string> list = new List<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; }