如果我要创建两个单独的项目:
MVC项目将使用HttpClient与Web API进行通信。
如果是这种情况,并且我想使用内置的ASP.NET身份,我应该通过Web API进行操作还是将其作为MVC项目的一部分进行操作?
答案 0 :(得分:1)
根据您的问题描述,您似乎最终只会保护您应用的1层。
理想情况下,你会保护两者。在MVC应用程序方面,您可能希望使用ASPNET标识user authentication
(确定谁想要获取信息),并且在WebAPI方面,您希望resource authentication
或client authentication
检查是否API(app x)的调用者实际上有权调用API。后者无法通过ASPNET身份完成。您可能需要像Identity Server 4或Azure B2C这样的产品来实现这一目标。
现在,您可以保持API开放和放大内部,只是从MVC APP中的HTTPClient调用它,但是,如果我是你,我不会这样做。我可以想到为什么你想要一个API的唯一原因是,以后你可以从其他应用程序中使用它,所以,保持API打开是不可取的。
如果我愿意,我希望在我的应用程序周围建立一个安全框架,然后继续为应用程序提供API所需的访问权限,以执行所需的操作。