我有一个 ASP MVC4 网站。最初,大部分内容都是通过控制器提供的,正如人们所期望的那样。我已将数据存储从 SQL Server 移至 MongoDB。我还添加了很多 ajax 来更新数据客户端,没有完全刷新。这工作正常,但我的控制器现在有很多采用 json 并返回 json 的方法。我能够构建一个访问数据库并公开完全相同的功能的 Node.js 服务器,而无需大量往返 C#。
我的 javascript 客户端现在正在调用 Node.js REST API,这很好用。我的“安全”代码(如添加新用户)从服务器端访问相同的 REST API。
我的问题是:如何正确处理安全问题?我有三种情况:
- GET api/messages:不需要安全性,我想通过 Json REST API 向任何感兴趣的人公开我的站点消息。
- GET api/my/messages:只有当用户登录时我才需要允许访问它(它获取用户的消息)。
- POST api/users:这是一个只能从服务器调用的函数,其他任何东西都不能使用它。
由于用户已经登录到我的 ASP 网站,我如何使用他们的登录凭据通过我的 REST 服务对他们进行身份验证?当用户登录时,页面客户端会定期点击它进行更新。
有没有明智/标准的方法来做到这一点?核心思想是客户端代码使用至少部分向公众开放的 REST API,事实上,API 提供了我所有的业务逻辑——只有部分(如创建用户)被锁定到仅限超级管理员。
提前致谢!