2014-11-01 65 views
1

我有一个Webservice类。它具有诸如AddStudnet,RemoveStudnet,UpdateStudent等方法。这些方法使用StudentID,FirstName,LastName等参数。所有这些方法都有一个公共参数--ApiKey。构造函数不接受任何参数。所以,在我所有的方法中,我正在验证Api Key。如果它不是有效的密钥,则返回错误消息。如何在构造函数中验证Api Key?

而不是在每个方法中进行身份验证,我如何验证构造函数中的API密钥并防止对象被实例化?当我正在研究防止对象被实例化时,我遇到了抛出异常。如果我抛出异常,Web服务是否会暴露于任何安全漏洞?如果传递一个无效的api密钥,是否有不同的方法来防止对象被实例化?

回答

0

这里有两篇文章,会给你一个揭开序幕,并告诉你的API密钥的基本实现:

首先由罗恩·雅各布:

How to do API key Verification

其次,如何使用API​​密钥与构造函数:

How To Authenticate API Key In The Constructor

最重要的事情是verifie d在每次调用键与此:

InstanceContextMode = InstanceContextMode.PerCall 

这行代码被强制为每个请求的构造函数的调用,所以每次请求API进行验证。

希望对你有所帮助。

相关问题