公开网站中的ASP.NET Web API授权机制

时间:2019-09-23 12:53:59

标签: angular asp.net-web-api authorization

我对ASP.NET Web API相对较新,需要您对以下情况的建议: 几个月前,我参加了一个包含Angular 5前端的Web项目,使用了ASP.NET Web API 2接口的服务。数据库是SQL Server,在访问数据时有多个角色,因此我们使用了基于令牌的身份验证。 最近,我被分配去开发一个Web界面,该界面将显示很多图表和报告,并将汇总来自不同数据源的数据。我正在考虑使用与上一个项目相同的基础结构和框架,但是我要确保使用授权的类型。大多数视图都可以通过https公开访问,但是我们希望拥有一些管理员视图,这些视图当然需要适当的身份验证。我不完全确定哪种方法是最好的-将公共身份和管理员视图的基本身份验证/令牌身份验证分别结合在一起,或者应用基于令牌的令牌并创建一个公共用户来访问公共资源。任何建议,不胜感激。

2 个答案:

答案 0 :(得分:0)

在您的情况下,我将Admin和Public分开,这意味着在您的API中创建单独的操作。因此,您只需要为管理操作实现授权(我建议使用基于令牌的授权)。您可以匿名使用的所有Public内容。我希望这会有所帮助。

答案 1 :(得分:0)

在您的情况下,我想对所有API使用基于API令牌的身份验证,但是您只想访问哪个API(管理员API),请使用[EnableCors(origins:“ http://yoursite.com”),标题:“ “,方法:” “)]在您的Admin API上方并公开使用[EnableCors(来源:” “,标头:” “,方法:” *“)]您的公共API。另外,请不要忘记安装-> Install-Package Microsoft.AspNet.WebApi.Cors并添加config.EnableCors();。进入注册部分下的webApiconfig。