加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService安全篇

发布时间:2020-12-17 01:25:43 所属栏目:安全 来源:网络整理
导读:一、Web Service端的设计 先从SoapHeader继承一个自定义类CredentialSoapHeader,该类包含用户名和密码: public ? class ?CredentialSoapHeader?:?SoapHeader { ???? public ? string ?Username ???? { ???????? get ? {? ?} ???????? set ? {? ?} ????} ??

一、Web Service端的设计

先从SoapHeader继承一个自定义类CredentialSoapHeader,该类包含用户名和密码:

public ? class ?CredentialSoapHeader?:?SoapHeader

{

????
public?string?Username

????

{

????????
get?

{?

?}

????????
set?

{?

?}

????}


????
public?string?Password

????

{

????????
get?

{?

?}

????????
set?

{?

?}

????}

}


在WebService类里面创建一个属性Credentials,类型为CredentialSoapHeader:

public ? class ?IssueVisionServices?:?WebService

{

????
//?custom?SOAP?header?to?pass?credentials

????public?CredentialSoapHeader?Credentials

????

{

????????
get?

{?

?}

????????
set?

{?

?}

????}

????


}


在WebMethod的方法上使用SoapHeader标识,成员名称为"Credentials":

[WebMethod(Description = " Returns?the?lookup?tables?for?IssueVision. " )]

[SoapHeader(
" Credentials " )]

public ?IVDataSet?GetLookupTables()

{

????SecurityHelper.VerifyCredentials(
this);

????
return?new?IVData().GetLookupTables();

}

?

public ? class ?SecurityHelper?
{
????
// ?verifies?the?clients?credentials
???? public ? static ? void ?VerifyCredentials(IssueVisionServices?service)?
????{
????????String?userName?
= ?service.Credentials.Username;
????????String?password?
= ?service.Credentials.Password;
????????
// ?按照userName?和?password?进行授权验证
????????


????}
}


二、客户端对Web Service的调用

private ? static ?IssueVisionServices?GetWebServiceReference()

{

????
return?GetWebServiceReference(UserSettings.Instance.Username,?UserSettings.Instance.Password);

}


private ? static ?IssueVisionServices?GetWebServiceReference( string ?username,? string ?password)

{

????IssueVisionServices?dataService?
=?new?IssueVisionServices();

????????

????
//<ReplaceWithWse>

????CredentialSoapHeader?header?=?new?CredentialSoapHeader();

????header.Username?
=?username;

????header.Password?
=?password;

????dataService.CredentialSoapHeaderValue?
=?header;

????
//</ReplaceWithWse>

????????????

????InitWebServiceProxy(dataService);

????????????

????
return?dataService;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读