Asp.net mvc Web API安全(身份验证) 背景:

Asp.net mvc Web API安全(身份验证) 背景:,asp.net-mvc,authentication,asp.net-web-api,bearer-token,Asp.net Mvc,Authentication,Asp.net Web Api,Bearer Token,我已经实现了一个Web API(.NET),现在我需要做最重要的事情, 保护它 当我研究这个主题时,我了解到常见的方式是承载令牌。 现在我们来解决我的问题 我的问题 一侧: 我看到的每一篇文章(解释了概念和在.NET上实现它的方法)都是从一个项目开始的,该项目有一个包含MVC和Web API的Web API模板,在身份验证字段中,从个人/组织/窗口中选择一个选项 另一边: 我不需要MVC项目,我只需要Web API(没有任何GUI),这就是我选择空项目并选中Web API复选框的原因,这样我就无

我已经实现了一个Web API(.NET),现在我需要做最重要的事情, 保护它

当我研究这个主题时,我了解到常见的方式是承载令牌。

现在我们来解决我的问题

我的问题 一侧:

我看到的每一篇文章(解释了概念和在.NET上实现它的方法)都是从一个项目开始的,该项目有一个包含MVC和Web API的Web API模板,在身份验证字段中,从个人/组织/窗口中选择一个选项

另一边:

我不需要MVC项目,我只需要Web API(没有任何GUI),这就是我选择空项目并选中Web API复选框的原因,这样我就无法选择身份验证类型,我被迫从没有身份验证开始

问题: 1.我是否绑定使用MVC进行身份验证?如果不是,我如何从纯WebAPI项目中实现它

2.也许我会从该Web API模板创建一个身份验证服务器(仅生成令牌)(可以选择身份验证类型)?(并在真正的Web API上使用令牌)

3.在不同的项目和不同的服务器上实现身份验证服务器有什么好处?()


p.S我想使用开箱即用的解决方案,因为安全方面是最重要的(在我看来),应该是完美的。

我写了一篇关于这个主题的博客,名为“安全和安全地调用Web API和[授权]”:。我想如果你读了这篇文章,你会得到所有的答案

默认情况下,WebAPI模板包含MVC,这样您就可以获得自动文档功能(这是一个很好的功能)。但是,身份验证部分与核心ASP.net功能相关,而不是特定于MVC或Web API。您需要启用其中一个身份验证选项,以使用.net内置的安全功能保护API

如果您不想要Web API附带的MVC项目,只需在项目创建后将其删除即可。它包含在“区域”文件夹中。如果删除该文件夹,您将在纯web api上运行

要回答您的具体问题:

1) 不,您不需要MVC项目来保护API项目。您可以在API控制器和操作上使用[Authorize]属性

2) 默认情况下,将使用web api模板创建身份验证服务器。您可以通过访问它并获得代币http:///Token

3) 不,您需要使用api本身为安全控制器/操作请求提供有效令牌


希望有帮助。如果没有,那么请更具体地回答您的问题。

我认为要回答这个问题,我们需要更多关于该项目的信息,如“。。。实现web API“毫无意义”。webapi是一个框架,MVC是webapi使用的常见模式。例如,如果您需要对restful服务进行身份验证以检索某人在其银行中的存款。一种方法是使用每个控制器上的属性进行身份验证。希望大家看看这篇文章: