日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单点登录之实战CAS5.1.x(六)——REST协议

發布時間:2025/3/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单点登录之实战CAS5.1.x(六)——REST协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

b/s類型的項目我們可以使用前文的方法很容易就做了集成,如果是c/s類型的應用呢?還有些比較特殊b/s類型的項目,既希望能夠集成sso,又希望能保留自己的登錄畫面和本地用戶,這里就需要用到官方提供的REST協議。

這一段嘗試過程很順利,官方的文檔雖然簡單到不行不過沒啥大毛病,筆者嘗試用C#實現了一下一次通過,小伙伴們可以很輕松的參照C#代碼碼出其他語言的代碼,因為只是做幾次簡單的http請求。

private void btnClick_Click(object sender, EventArgs e){//獲取TGTstring tid = HtmlPost("https://sso.xxx.com/cas/v1/tickets", "username=zhangsan&password=1", "POST");//返回的格式是html,需要解析抽取TGTRegex regex = new Regex("(?<=tickets/).+?(?=\")", RegexOptions.Singleline);tid = regex.Match(tid).Value;//獲取服務(客戶端惟一url,可以捏造但必須惟一)憑據,有效期1.8秒string data = "service=" + HttpUtility.UrlEncode("https://www.xxx.com");string ticket = HtmlPost("https://sso.xxx.com/cas/v1/tickets/" + tid, data, "POST");//憑借客戶端惟一url和它的憑據獲取用戶憑據string content = HtmlGet("https://sso.xxx.com/cas/p3/serviceValidate?service=https://www.xxx.com&ticket=" + ticket);//返回的content是xml格式的,需要自行解析//注銷憑據string result = HtmlPost("https://sso.xxx.com/cas/v1/tickets/" + tid, "", "DELETE");}string HtmlPost(string url, string data, string method){HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);req.ContentType = "application/x-www-form-urlencoded";req.Method = method;byte[] form = Encoding.Default.GetBytes(data);req.ContentLength = form.Length;req.GetRequestStream().Write(form, 0, form.Length);req.GetRequestStream().Close();HttpWebResponse rep = (HttpWebResponse)req.GetResponse();StreamReader sr = new StreamReader(rep.GetResponseStream());string str = sr.ReadToEnd();sr.Close();rep.GetResponseStream().Close();return str;}string HtmlGet(string url){WebClient wc = new WebClient();wc.Encoding = Encoding.UTF8;return wc.DownloadString(url);}

?

轉載于:https://my.oschina.net/viperwhip/blog/1534908

總結

以上是生活随笔為你收集整理的单点登录之实战CAS5.1.x(六)——REST协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。