我有一个Webservice类。它有AddStudnet,RemoveStudnet,UpdateStudent等方法。这些方法采用StudentID,FirstName,LastName等参数。所有这些方法都有一个通用参数--Api Key。构造函数不接受任何参数。因此,在我的所有方法中,我都在验证Api密钥。如果它不是有效密钥,则返回错误消息。
如何在每个方法中进行身份验证,而不是在构造函数中验证api密钥并防止对象被实例化?当我研究防止对象被实例化时,我遇到了抛出异常。如果我抛出异常,Web服务是否会暴露于任何安全漏洞?如果传递了无效的api密钥,是否有不同的方法来阻止对象被实例化?
答案 0 :(得分:0)
这篇文章将为您提供一些启动,并向您展示API Key的基本实现:
首先是Ron Jacob:
How to do API key Verification
其次,如何将API Key与构造函数一起使用:
How To Authenticate API Key In The Constructor
最重要的是用这个验证每次通话中的键:
InstanceContextMode = InstanceContextMode.PerCall
这行代码强制在每个请求上调用构造函数,因此每个请求都会验证API。
希望能帮助你。