关于如何向C#的WebService传送一个经过加密后的字符串问题

Foxer 2006-08-30 03:06:48
这几天做个WebService和VFP协同工作的程序

前台为VFP,WebService用C#编写,由于WebService使用的http传送数据,所以都是明码的,而我的程序要传送一些用户名、密码之类的敏感信息,所以,要求这些信息在传送的时候必须经过加密。

首先,用VFP和C#做两个功能相同的加密和解密的函数。

然后,把VFP加密后的字符串传送给WebService的一个方法A,方法A接受此字符串后,用前面的解密算法进行解密后得到原始字符串。


这里出现了问题


在VFP中调用WebService方法:

cMidString = T01("XXXXXX") && 产生加密的字符串
oMuseServer = ThisForm.wsMuseServer.SetupClient(cWebServiceUrl ,"MuseWebService","MuseWebServiceSoap") &&创建WebService对象

oMuseServer.Test1(cMidString) &&调用WebService方法,此处出错(数据类型错误)


C#的方法如下:
...
[WebMethod]
public string Test1(byte[] b)
{
return s;
}
...

在这里,Test1函数接受的参数改成string、char[]、byte[]均出现错误,因为在VFP中加密后的字符串是“乱码”,string是不可以的,同样char[]也不行,但byte[]为什么不行呢?

这个问题我已经解决了,在这里提出来,给大家提供一个经验,因为这样做程序的还是比较少的
每人答出来的话,我再给答案:)
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Foxer 2006-08-31
  • 打赏
  • 举报
回复
版主不俺个机会,看来只好公布答案了:)


在VFP中调用WebService方法:

cMidString = T01("XXXXXX") && 产生加密的字符串
oMuseServer = ThisForm.wsMuseServer.SetupClient(cWebServiceUrl ,"MuseWebService","MuseWebServiceSoap") &&创建WebService对象

oMuseServer.Test1(CREATEBINARY(cMidString)) &&调用WebService方法,传入转成BINARY类型的数据


C#的方法如下:
...
[WebMethod]
public string Test1(byte[] b)
{
...; // C#解密
s=Encoding.Default.GetString(b);
return s; //返回原始的字符串
}
...
十豆三 2006-08-31
  • 打赏
  • 举报
回复
你不是在另一个帖子里给出答案了吗?

转成二进制 再传入C#
Foxer 2006-08-31
  • 打赏
  • 举报
回复
实际上是一个很简单的问题

提示一下:经检测,从C#段返回到VFP的byte[]数组类型的字符串,到VFP里就成为类型"Q"
Foxer 2006-08-31
  • 打赏
  • 举报
回复
"拆成一个一个的送给C#端"

你不嫌麻烦,C#还嫌麻烦呢~
TERRYYRRET 2006-08-31
  • 打赏
  • 举报
回复
拆成一个一个的送给C#端
Foxer 2006-08-30
  • 打赏
  • 举报
回复
C#端可以转换,但嫌麻烦,最后还是在VFP端想的办法
十豆三 2006-08-30
  • 打赏
  • 举报
回复
如果是C#端想办法我就找不着门了。
Foxer 2006-08-30
  • 打赏
  • 举报
回复
斑竹果然是斑竹!

这几个方法都可以,但将STRCONV产生的字符串传送到C#后,将其转换成原本的字符,还是比较麻烦的。

还有更简单的方法!
十豆三 2006-08-30
  • 打赏
  • 举报
回复
或用

STRCONV("乱码",13)

编码后的base64 二进制试试。
十豆三 2006-08-30
  • 打赏
  • 举报
回复
VFP中加密后的字符串是“乱码”,
将“乱码”每一位转换成一个ASC码,
将每一位的ASC码转成字符型并用空格或换行符或其他字符连接,
从而得到一个字符串,
将这个Asc字符串传给Test1函数,
Test1函数接收ASC码字符串后,再转成“乱码”应该可以吧。

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧