首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

怎么防止webservice被非法调用

2011-12-30 
如何防止webservice被非法调用如何防止webservice被非法调用,一般采取哪些方法[解决办法]有个令牌技术为了

如何防止webservice被非法调用
如何防止webservice被非法调用,一般采取哪些方法

[解决办法]

有个令牌技术

为了使.asmx句柄有可能反串行化SOAP头,首先你需要定义一个.NET类,它代表了暗含的XML Schema类。在此例中相应的类如下:

[XMLType(Namespace="http://example.org/security")]

[XMLRoot(Namespace="http://example.org/security")]

public class UsernameToken : SoapHeader {

public string username;

public string password;

}

然后你需要在WebMethod类中定义一个成员变量来控制一个头类的实例,同样要为WebMethods标记[SoapHeader]属性。见如下:

using System;

using System.Web.Services;

using System.Web.Services.Protocols;

 

 [WebService(Namespace="urn:geometry")]

public class Geometry {

 

public UsernameToken Token;

 

[WebMethod]

[SoapHeader("Token")]

public double Distance(Point orig, Point dest) {

if (!Token.username.Equals(Reverse(Token.password)))

throw new Exception("access denied");

 

return Math.Sqrt(Math.Pow(orig.x-dest.x, 2) +

Math.Pow(orig.y-dest.y, 2));

}

}


大概就是这样子,你上网搜搜!
[解决办法]
确实可以用session。
一般用WSE进行安全加密,这样你的请求就不是明文的了
[解决办法]
方法和1楼说的差不多,就是在调用的时候验证下是不是有效的合法的调用

热点排行