我以前实现了ASP.NET WebSecurity Membership和WebAPI,但我从未同时使用它们(从不需要)。
现在,我正在构建一个新站点,客户端不需要访问者注册或登录。所以没有会员资格。
然而,客户端希望能够通过WebAPI检索数据。然而,这些数据可能是敏感的,并不是我们希望用户或黑客看到的东西,所以我如何“授权”我的客户端 - 而且只有我的客户端 - 以便她可以从客户端发出API请求(无论是WinForms)桌面应用,移动应用等)?
答案 0 :(得分:1)
我在面向公众的API中实现了类似的功能,其中一些方法只允许管理员调用。
管理方法签名包括字符串参数,该字符串参数接受我之前分配给管理员用户的唯一标识符字符串。
然后在我检查的每个方法调用上,如果提供的API Key属于管理员并且如果没有则抛出未经授权的异常,或者如果有则响应带有数据的调用。
示例方法:
public decimal GetCompanyBalance(string APIKey, int CompanyId)
{
if(!UserManager.GetByAPIKey(APIKey).IsAdmin){
throw new UnauthorizedException();
}
return Company.GetBalance(CompanyId);
}