接口封装及调用

这篇博客介绍了接口封装的重要性以及应用系统调用接口的开发步骤,通过创建SSOLib类库简化接入认证服务中心的过程。文章详细阐述了从设置环境参数、引用组件到用户身份验证、状态同步等多个环节的操作,旨在降低开发难度并提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

为了更好地让应用系统进行调用,有的时候需要对接口进行封装,把复杂的东西包起来,让应用系统接口开发者感觉越简单越好。这样你的系统才更容易被推广或应用。比如,现在的很多在线支付接口都提供了软件开发包。我们也可以通过封装来实现接口开发包,让开发人员简单开发,轻松调用。

1.接口封装

我们添加一个SSOLib类库项目,提供对应用系统接口代码的封装,从而使其他应用系统通过调用该类库,即可实现接入认证服务中心。SSOLib类库项目如图18-17所示,详细代码请参考本书配套光盘。

图18-17  SSOClass类库项目

l   Assistant类:辅助工具类。

l  DESEncrypt类:加密/解密处理类。

l  SynPageBase类:(接收认证中心)状态同步页面的基类,在应用系统中创建一个空白页面继承该类,即可实现同步功能。

l  ValidatePageBase类:当前应用系统验证页面的基类。应用系统中的任一页面通过继承该类,都可实现对用户状态的验证功能。

2.应用系统调用接口开发步骤

下面看一下如何通过调用上面封装过的类库,来实现接入认证服务中心实现单点登录功能。

(1)在Web.config里设定环境参数:

<appSettings>

    <!--认证服务器验证请求地址-->

    <add key="ServiceValidate" value="http://localhost:2999/Validate.aspx"/>

    <!--认证服务器域名地址-->

    <add key="ServiceUrl" value="http://localhost:2999"/>

    <!--分配给应用系统的API代码-->

    <add key="apikey" value="642386db7bf249018117e643522d6a05"/>

    <!--是否加密传递 -->

    <add key="IsEncrypt" value="false"/>

    <!--加密密钥-->

    <add key="EncryptKey" value="litianping"/>

</appSettings>

(2)在Global.asax.cs中Session_Start添加:

protected void Session_Start(object sender, EventArgs e)

{

    this.Session.Add("UserID", 0);

    this.Session.Add("Pass", false);

    this.Session.Add("Security", "");

    this.Session.Add("Url", "");

}

(3)引用组件SSOLib.DLL,如图18-18所示。

图18-18  引用组件SSOLib.DLL

(4)用户身份认证,验证当前状态。

将要进行验证的页面(AnyPage)基类由System.Web.UI.Page改为 SSOLib.ValidatePage。

(5)接收认证服务器的返回信息进行状态同步。

在项目中增加一个空白页面Synchronous.aspx,将页面基类继承自SSOLib.SynPageBase。

(6)更新认证服务器,保持Service认证服务器Session状态。

添加一个用户控件SynServerIFrame.ascx实现如下代码,并拖到所有的页面上。

<iframe width=0 height=0 src='<%= ServiceUrl%>/SessionState.aspx'></iframe>

SynServerIFrame.ascx.cs代码如下:

public partial class SynServerIFrame : System.Web.UI.UserControl

{

    public string ServiceUrl = ConfigurationSettings.AppSettings["ServiceUrl"];

}

(7)注销当前应用系统的登录。

Session.Clear();

Session.Abandon();

(8)注销所有应用系统的登录。

直接转向服务器注销页面即可:

Response.Redirect(ConfigurationSettings.AppSettings["ServiceUrl"] +

  "/logout.aspx");

通过上面方式的调用,应用系统的开发工作量大大减少,几分钟就可以实现了。当然,这里不仅仅是教给大家几行代码,更重要的是一种思想,一种为客户着想的思想。

本文节选自《项目中的.NET》一书

李天平 编著

电子工业出版社出版

 

           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值