luobenabc_个人页

个人头像照片 luobenabc
0
12
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 提交了问题 2017-12-07

    钉钉第三方登录

  • 回答了问题 2017-11-10

    钉钉升级

    Re钉钉升级 升级成4.0的 钉钉回调有小问题  这个是我之前免登的http://192.168.100.11:18003/Rbac/E500  但是升级后 免登 回调会变成  http://192.168.100.11:18003/Rbac/E500&code=xxx,  回调地址改为ttp://192.168.100.11:18003/Rbac/E500?1=1可以正常使用了 ------------------------- 回 2楼seahouse的帖子         public ActionResult E500()         {             //页面初始载入判断是否已存登录用户             if (string.IsNullOrEmpty(Request['code']))             {                 //用户未登录,通过oauth授权去钉钉服务器拿取授权                 //去拿授权成功后带着code与state的回调地址,可以是当前项目中的任意其它地址,这里使用当前页面                 string redirecturi = Server.UrlEncode('http://192.168.100.11:18003/Rbac/E500?1=1');                 //string redirecturi = Server.UrlEncode('http://192.168.100.11:18003/Rbac/E500');//4.0以下的版本返回时正常                 //state 在 oauth中是为了随止跨站攻击的,所以回调之后一定要比较回调来的state与这个session['state]是否相等                 //具体的是什么原理可以参考oauth中关于state的介绍                 string state = Helper.state();                 Session['state'] = state;                 //这里的含义是说,我当前的网站没登录,我带着我的合法的认证(Config.SCorpId)去钉钉要一个当前登录用户分配的code,拿到这个code可以去换取当前的用户信息,来实现免登                 string url = 'https://oapi.dingtalk.com/connect/oauth2/authorize?appid=' + 'xxxxx' + '&redirect_uri=' + redirecturi + '&response_type=code&scope=snsapi_base&state=' + state;                             Response.Redirect(url);             }             else             {                 string code = Request['code'].ToString(); ..... }} 是其他方式  我微应用配置的直接跳转到这边  后面重定向返回那次参数拼接有问题
    踩0 评论0
  • 回答了问题 2017-11-10

    请教如何获取成员详情

    回 楼主哥迪的帖子 先获取所有部门  ,再根据部门id获取部门下的所有人         ///         /// 获取用户id  根据部门id,获取部门所有人         ///         public void getUserId()         {             var token = EnterpriseBusiness.GetToken().access_token;             var us = EnterpriseBusiness.GetDepList(token);//获取所有部门             var deptId = new List();             var userlists = new List();             foreach (var item in us)             {                 var userlist = EnterpriseBusiness.GetDepUser(token, item.id.ToString());                 userlists = userlists.Concat(userlist).ToList();             }         } ------------------------- 回 2楼画笔小辉的帖子 我本地建了一个一样的表,只是在有新人的时候调用,其他时候去本地的库取信息 ------------------------- 回 3楼哥迪的帖子 不是通过那个接口  我是通过 服务端开发文档-通讯录管理-部门管理 中的   获取部门列表,获取部门详情  这2个接口结合起来 获取所有的成员信息然后存本地之类,不然每次调用太费劲了
    踩0 评论0
  • 提交了问题 2017-11-09

    钉钉升级

  • 提交了问题 2017-08-14

    网页扫描登录

  • 回答了问题 2017-08-14

    网页扫描登录

    回 楼主luobenabc的帖子 。。是我自己的问题 页面js要注意2个细节后端修改为    var loginTmpCode = Request['code']; ------------------------- 回 1楼luobenabc的帖子
    踩0 评论0
  • 提交了问题 2016-12-27

    发送群消息

  • 提交了问题 2016-11-22

    jsapi调试

  • 提交了问题 2016-11-22

    jsapi

  • 回答了问题 2016-11-22

    jsapi调试

    回 楼主luobenabc的帖子 血的教训,不要用苹果调试!!!不要用苹果调试!!!不要用苹果调试!!!重要的事说3遍
    踩0 评论0
  • 回答了问题 2016-09-06

    图片上传

    Re图片上传 .。。没找到啊。。。 ------------------------- Re图片上传 。。自己挖坑自己解决 希望大家多贴点c#代码   c#服务端上传图片   private static string HttpPostData(string url, string fileKeyName, string filePath, NameValueCollection stringDict)         {             string responseContent;             var memStream = new MemoryStream();             var webRequest = (HttpWebRequest)WebRequest.Create(url);             // 边界符             var boundary = '---------------' + DateTime.Now.Ticks.ToString('x');             // 边界符             var beginBoundary = Encoding.ASCII.GetBytes('--' + boundary + '\r\n');             var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);             // 最后的结束符             var endBoundary = Encoding.ASCII.GetBytes('--' + boundary + '--\r\n');             // 设置属性             webRequest.Method = 'POST';             webRequest.ContentType = 'multipart/form-data; boundary=' + boundary;             // 写入文件             const string filePartHeader =                 'Content-Disposition: form-data; name=\'{0}\'; filename=\'{1}\'\r\n' +                  'Content-Type: application/octet-stream\r\n\r\n';             var header = string.Format(filePartHeader, fileKeyName, filePath);             var headerbytes = Encoding.UTF8.GetBytes(header);             memStream.Write(beginBoundary, 0, beginBoundary.Length);             memStream.Write(headerbytes, 0, headerbytes.Length);             var buffer = new byte[1024];             int bytesRead; // =0             while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)             {                 memStream.Write(buffer, 0, bytesRead);             }             // 写入字符串的Key             var stringKeyHeader = '\r\n--' + boundary +                                    '\r\nContent-Disposition: form-data; name=\'{0}\'' +                                    '\r\n\r\n{1}\r\n';             foreach (byte[] formitembytes in from string key in stringDict.Keys                                              select string.Format(stringKeyHeader, key, stringDict[key])                                                  into formitem                                              select Encoding.UTF8.GetBytes(formitem))             {                 memStream.Write(formitembytes, 0, formitembytes.Length);             }             // 写入最后的结束边界符             memStream.Write(endBoundary, 0, endBoundary.Length);             webRequest.ContentLength = memStream.Length;             var requestStream = webRequest.GetRequestStream();             memStream.Position = 0;             var tempBuffer = new byte[memStream.Length];             memStream.Read(tempBuffer, 0, tempBuffer.Length);             memStream.Close();             requestStream.Write(tempBuffer, 0, tempBuffer.Length);             requestStream.Close();             var httpWebResponse = (HttpWebResponse)webRequest.GetResponse();             using (var httpStreamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding('utf-8')))             {                 responseContent = httpStreamReader.ReadToEnd();             }             fileStream.Close();             httpWebResponse.Close();             webRequest.Abort();             return responseContent;         }         public static PostImage uploadImage(string filePath)         {             string url = 'https://oapi.dingtalk.com/media/upload?access_token=' + EnterpriseBusiness.GetToken().access_token + '&type=image';             NameValueCollection nvc = new NameValueCollection();             nvc['test'] = 'test.jpg';             var response = HttpPostData(url, 'media', filePath, nvc);             return JsonHelper.Deserialize(response);                }
    踩0 评论0
  • 提交了问题 2016-09-05

    图片上传

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息