C# ASP.NET核心MVC/WebAPI身份验证方案加匿名
我有一个网站加上API我写的问题。如果这有关系的话,它们在同一个项目中 简化为最简单的形式,它是一个目录网站和API。数据库中有产品和显示产品信息的页面。您还有其他页面,允许编辑此信息和添加新产品等 有三种方法可以做到这一点:C# ASP.NET核心MVC/WebAPI身份验证方案加匿名,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个网站加上API我写的问题。如果这有关系的话,它们在同一个项目中 简化为最简单的形式,它是一个目录网站和API。数据库中有产品和显示产品信息的页面。您还有其他页面,允许编辑此信息和添加新产品等 有三种方法可以做到这一点: 匿名用户可以在网站上列出产品并查看有关产品的公共信息 登录用户可以在网站上列出、查看(包括私人信息)、编辑、创建和删除产品 具有有效API密钥的用户可以使用API列出、查看(包括私人信息)、编辑、创建和删除产品 我遇到的问题是,网站使用AJAX调用API,而这些调用只有在
- 网站的一个特殊API键,但它必须在Javascript代码中的某个地方对全世界可见,因此有人可以使用它来访问API本身并绕过我想要实现的任何速率限制
- 我考虑在web控制器上的会话中设置一些东西,然后可以在API控制器中进行验证,但我遇到了一些问题,未经验证的API调用重定向到帐户控制器上的登录页面,然后设置相关会话变量,这意味着后续API调用无论是否经过合法身份验证都会成功。这似乎是最有希望的选择,但我对ASP.NETCore的工作原理还不够熟悉,无法使它变得健壮