[]
单点登录可使用户从其他应用程序或网站中跳转到活字格的页面时,自动以原应用的用户名登录活字格的网站。
单点登录的原理图如下图所示。
请求方式
Post
参数
参数 | 说明 |
---|---|
userName | 需要登录的用户名。 |
password | 单点登录密码。 |
返回值
字符串。如果获取Token成功,返回的字符串不以 “Error:”开头;如果获取Token失败,返回的字符串为错误信息并以“Error:”开头,方便调试定位。
type=note
说明:
用户名必须在活字格的用户管理系统中存在。
在活字格的设计器,选择“文件->设置->与另外的网站集成”,可查看与设置单点登录的密码。设置说明见下表。
设置 | 说明 |
---|---|
允许单点登录 | 是否开启单点登录,默认不开启,值为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);
type=note
说明:
此功能仅适用于Form用户,Windows域用户无法使用该功能。
需要登录的用户名必须在活字格应用中已经存在。
为了确保安全,单点登录的密码不要在JavaScript代码中出现,以防泄露。
在服务器上的“C:\Users\Public\Documents\ForguncyServer\应用名”目录下找到“Config.xml”配置文件,打开并编辑Password的值,如下图所示。
type=note
说明:
如果Password节点中没有值,则表示密码为打开设计器时随机生成的密码。
修改后需要重启网站。