我是新开发API的,并已将ASP.NET web api功能构建到我现有的MVC项目中。我希望客户能够发送多个对象实例的JSON,这些对象实例可以保存到我的数据库中,但是目前该API仅包含框架提供的值模板,我想先解决它现在的安全问题前进充分开发API:授权和验证ASP.Net web api
[Authorize]
public class ValuesController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
// POST api/<controller>
public void Post([FromBody]string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
的授权标签要求用户在瞬间登录我的网站上,我很困惑,我怎么可能API编程在这种情况下被调用。
我想保护api,客户端要使用它,必须提供其唯一的API密钥才能访问功能。此外,我想使用此API密钥来确定哪个用户调用了API,以便我可以仅使用他们的数据对其进行响应。
从早期的起点(仅集成了Web Api功能)中实施这些步骤所涉及的步骤是什么?
我一直在看,并越来越困惑的HMAC认证,虽然这似乎与我后似乎相当复杂的实现(也许只是因为我在一个新的领域),我想必须有一种更简单的方法来实现我想要的?
除了对用户进行身份验证之外,还想使用HMAC来验证数据的完整性吗?或者你只是想验证用户? –
我不确定是否需要我的场景。我有一个用户可以创建联系人和消息的门户,而API主要是允许其他系统在他们自己创建时在我的系统中创建联系人。使用我提供给第三方开发人员的一些密钥,我觉得验证足够了。你会建议什么? – JonnyKnottsvill
我觉得像这样可能是足够的http://stackoverflow.com/questions/11014953/asp-net-web-api-authentication?rq=1 – JonnyKnottsvill