Page tree
Skip to end of metadata
Go to start of metadata

1.描述

单点登录可使用户从其他应用程序或网站中跳转到活字格的页面时,自动以原应用的用户名登录活字格的网站。

单点登录的原理图如图1所示。

图1  单点登录原理图

GetUserToken 接口说明

请求方式

Post

参数

参数

说明

userName需要登录的用户名。
password

单点登录密码。


返回值

字符串。如果获取Token成功,返回的字符串不以 “Error:”开头;如果获取Token失败,返回的字符串为错误信息并以“Error:”开头,方便调试定位。

说明
用户名必须在活字格的用户管理系统中存在。

2.设置单点登录

在活字格的设计器,选择“文件->设置->与另外的网站集成”,可查看与设置单点登录的密码。设置说明见表1

图2  单点登录

表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);
说明
  • 此功能仅适用于Form用户,Windows域用户无法使用该功能。
  • 需要登录的用户名必须在活字格应用中已经存在。
  • 为了确保安全,单点登录的密码不要在JavaScript代码中出现,以防泄露。

直接修改发布后的密码

在服务器上的“C:\Users\Public\Documents\ForguncyServer\应用名”目录下找到“Config.xml”配置文件,打开并编辑Password的值,如下图所示。

说明
  • 如果Password节点中没有值,则表示密码为打开设计器时随机生成的密码。
  • 修改后需要重启网站。


回到顶部

  • No labels

1 Comment

  1. 有一个简单的单点登录功能教程,分享给大家:教程地址

    <鸣谢 Francis.Wang>