我这样的Web Service如何保障安全?

coudoufu 2006-06-28 03:33:17
客户端用Atlas,调用服务器端Web Service,主要是做一些数据库操作,这些Web Service只供我自己调用,怎么保障安全呢?
...全文
481 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztx998 2007-01-22
  • 打赏
  • 举报
回复
mark
stormwolf 2006-10-30
  • 打赏
  • 举报
回复
mark
coudoufu 2006-07-03
  • 打赏
  • 举报
回复
谢谢各位,我准备把Web Service做成一个子站点,对访问ip进行限制,这样就可以在iis层面上进行控制了。
oldcsdn 2006-06-30
  • 打赏
  • 举报
回复
简单实用的做法是使用Windows简要身份验证,方法是这样的

在IIS里 设置Webservice站点-->目录安全性-->身份验证方法为摘要式身份验证 并设置用户名密码 然后 在调用webservice的程序里传递用户名密码等信息,即可控制访问,

如下代码是我在一个项目里使用的,一直用得很好

//自定义创建一个服务代理类专门进行webservice调用,以免因webservice的改变造成网站程序的改变
public class ServiceAgent
{
StudentService ws = new StudentService();
public ServiceAgent()
{
// 在构造时创建webservice访问证书 这样只用创建一次证书进行多次webservice方法调用
SetCredentials();
}
public void SetCredentials()
{
string userName = Config.ServiceUser;
string password = Config.ServicePwd;
string domain = Config.ServiceName; //
//生成证书集对象
System.Net.CredentialCache credentialCache= new CredentialCache();
//以IIS上设置的用户名密码创建访问证书
System.Net.NetworkCredential credential =
new NetworkCredential(userName,password,domain);
// 添加证书到证书集
credentialCache.Add(new Uri(ws.Url),"Basic",credential);
//绑定证书到webservice
ws.Credentials = credentialCache;

}
public DataSet GetStudent(string _UserID)
{
DataSet dsStudent = ws.GetStudent( _UserID );
return dsStudent;

}

}
然后就可以用正常的方法调用webservice的各个方法了
canserly 2006-06-29
  • 打赏
  • 举报
回复
可以用SOAP报头放置验证信息
还可以用wse加密
mmens 2006-06-29
  • 打赏
  • 举报
回复
use soap head.
yizhixiaozhu 2006-06-29
  • 打赏
  • 举报
回复
你可以使用session
或者使用soapheader来认证
coudoufu 2006-06-29
  • 打赏
  • 举报
回复
xli520(商界骄子):

这样不太好吧,每个方法都要多一个key来验证。
我准备用wse3.0,看看这个怎么用的。
Radar2006 2006-06-29
  • 打赏
  • 举报
回复
学习~~~
xli520 2006-06-29
  • 打赏
  • 举报
回复
在本地定义验证码:
public string key="abcdefg";
public bool exeUpdate(string TableName, string SetStrings, string WhereStrings, string OperatorID) {
object[] results = this.Invoke("exeUpdate", new object[] {
TableName,
SetStrings,
WhereStrings,
OperatorID});
return ((bool)(results[0]));
}
----------------
调用的时候
OperatorID=key;
exeUpdate(string TableName, string SetStrings, string WhereStrings, string OperatorID) {
if(OperatorID!="abcdefg")
return false
else
执行数据库操作
return ture;
}


--------
如果是外部调用,他不知道你的验证码:key
coudoufu 2006-06-28
  • 打赏
  • 举报
回复
能详细点吗?第一做web service的东西。
以前在两个系统之间post信息是ip验证加密码的。
seaonce 2006-06-28
  • 打赏
  • 举报
回复
用HTTPS,还有一种最笨的方法:

public void addData(sting val,......)
{
if(val.Equals("woshixiaohundan"))
{

执行体

}

}
canserly 2006-06-28
  • 打赏
  • 举报
回复
身份验证
coudoufu 2006-06-28
  • 打赏
  • 举报
回复
沙发自己坐

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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