单点登录可使用户从其他应用程序或网站中跳转到活字格的页面时,自动以原应用的用户名登录活字格的网站。
单点登录的原理图如图1所示。
请求方式
Post
参数
参数 | 说明 |
---|---|
userName | 需要登录的用户名。 |
password | 单点登录密码。 |
返回值
字符串。如果获取Token成功,返回的字符串不以 “Error:”开头;如果获取Token失败,返回的字符串为错误信息并以“Error:”开头,方便调试定位。
用户名必须在活字格的用户管理系统中存在。 |
在活字格的设计器,选择“文件->设置->与另外的网站集成”,可查看与设置单点登录的密码。设置说明见表1。
设置 | 说明 |
---|---|
允许单点登录 | 是否开启单点登录,默认不开启,值为False。 |
单点登录密码 | 获取用户Token时所需的密码。 打开设计器时会随机生成一个密码。允许单点登录后,如果不保存文件,下次再打开时密码会重新生成;如果保存了文件,再打开时密码则不会改变。 |
Token超时时间 | Token的有效时间。 |
设置单点登录后,在第三方(非活字格)的应用程序写下如下代码:
var baseUrl = "http://localhost:25979/Forguncy"; var userName = "administrator"; var password = "7FBqkHeV!4Rw"; // 这个密码是单点登录密码 HttpWebRequest rq = HttpWebRequest.Create(baseUrl + "/SSO/GetUserToken") as HttpWebRequest; rq.Method = WebRequestMethods.Http.Post; rq.Accept = "application/json"; rq.ContentType = "application/json"; var loginStr = "{userName:\"" + userName + "\", password:\"" + password + "\"}"; var data = Encoding.UTF8.GetBytes(loginStr); using (Stream stream = rq.GetRequestStream()) { stream.Write(data, 0, data.Length); } var response = rq.GetResponse(); var token = new StreamReader(response.GetResponseStream()).ReadToEnd(); if(token.StartsWith("Error:")) { MessageBox.Show(token); return; } Process.Start(baseUrl + "?token=" + token); |
|
直接修改发布后的密码
在服务器上的“C:\Users\Public\Documents\ForguncyServer\应用名”目录下找到“Config.xml”配置文件,打开并编辑Password的值,如下图所示。
|