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();
.....
}}
是其他方式 我微应用配置的直接跳转到这边 后面重定向返回那次参数拼接有问题