阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 1635|回复: 0

[原创] power-bi与OA系统集成,实现单点登陆

[复制链接]
  • TA的每日心情
    开心
    2017-3-7 13:15
  • 签到天数: 90 天

    [LV.6]常住居民II

    发表于 2012-2-15 11:29:42 | 显示全部楼层 |阅读模式
    单点登录的英文名称为Single Sign-On,简写为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。
    - `0 P: V4 q3 f  @3 Q
    Power-bi前端浏览可以很好的与其他的系结合,如与OA办公系统结合,主要使用Cookie实现单点登录。

    ; `. Y# L! ?8 [( M$ |3 v* D: `) V; W
    用户在单点登录服务器的登录页面中,输入用户名和密码,然后单点登录服务器会对用户名和密码进行认证。认证通过之后,单点登录服务器会和应用程序进行一个比较复杂的交互,这通常是某种授权机制。授权完成后,回到Web应用。Web应用此时就完成了成功的登录, 然后单点登录服务器会在客户端创建一个Cookie。这个Cookie是一个加密的Cookie,其中保存了用户登录的信息(如用户名和密码)。如果用户此时希望进入PowerBI前端页面,寻找客户端的Cookie,根据Cookie中保存的信息,进行登录。登录之后,重定向回到用户的应用程序。这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。

    6 z4 o! R% B% s! T8 c
    假如在OA系统中添加了一个应用项,就是Powerbi的相关菜单或者主页面,可以直接通过传递相关的参数(用户名和密码),以实现单点登陆。
    $ o$ J3 ]6 }9 t" c
    如在OA系统中加了一个Powerbi的菜单,原始的URL是:http://localhost:1845/powerbi/powerbi_default/index.aspx?username=黄奇&userpsw=123456&projid=1&aisdata=新方案1
    - g' ^+ g  Y8 c2 y 
    在这里会有一个中文转换(如果是中文的要转换成UNICOKE的形式)和加密的过程:
    8 i  X8 s  c3 _) r+ h7 p+ _( H5 Y+ p转换用户名:HttpUtility.UrlEncodeUnicode("黄奇")=%u9ec4%u59479 I2 X( g7 F2 C4 {, ?
    转换方案:HttpUtility.UrlEncodeUnicode("新方案1")=%u65b0%u65b9%u68481
    " c& S9 R! B0 P1 d6 H: X加密登陆信息:DesktopClass.DesktopClass.Encrypt("123456", "黄奇")=7KGLau1xF+o=;, V! t* Q8 O0 F$ S1 H2 ^) {

    $ z5 t$ K2 [6 j  Q那么在OA系统中最终发布Url:
    http://localhost:1845/powerbi/powerbi_default/index.aspx?username=%u9ec4%u5947&userpsw=7KGLau1xF+o=&projid=1&aisdata=%u65b0%u65b9%u68481
    - w4 J1 R" F5 y! `6 w

      Q, |1 B. R4 ~+ g& {4 B5 w  G) L
    加密解密过程:; i0 q( u8 Q& S9 k' B
    如果可以直接调用dll,按如下步骤调用即可(dll名称为DesktopClass,加密解密函数在dll中所属类为DesktopClass)
    8 {* s: Q) P7 ^1 a1、首先右键项目添加DesktopClass.dll引用
    8 B' o: m' F) r, S% w3 f* i2、在需要加密或解密的地方调用即可,调用格式如下:- ?# W; Z7 z& ?2 P1 W
    加密:加密后字符=DesktopClass.DesktopClass.Encrypt(加密前字符 ,密钥);
    7 k4 ~& B5 l3 n1 `0 n/ x* G2 Z  F解密:加密前字符=DesktopClass.DesktopClass.Decrypt(加密后字符 ,密钥);
    # V( @, E$ S% d* j' n/ u& h
    " a- g. U" Y& C% @8 V9 B5 ?, b
    说明:在这个过程会有一个加密和解密的函数,分别对用户名和密码进行加密和解密。加密和解密函数已经集成在DLL中了,在应用中直接调用就可以了,如果有单独需要这两个函数的代码,客户可以直接联系PowerBI。
    1)加密和解密中用到得密钥要一致(一般对用户的密码加密所用的密钥为用户名称)。
    . f' x% s. q; |  P8 ]. t4 p/ w2)PROJECTI名称如果是中文的话,要转换成UNICOKE的形式。

    8 m7 ~" h5 a  i
    6 X% \# B& {& p) @3 O7 t8 `5 I: S9 }/ C4 P
    该贴已经同步到 amywu的微博
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表