API身份验证和授权

时间:2020-04-09 10:50:42

标签: c# .net rest api asp.net-core

如果我确实使用了No Auth类型,并且同时可以在主体内传递令牌,并且我将请求该令牌并创建自己的过滤器,结果是什么?

3 个答案:

答案 0 :(得分:0)

如果您不喜欢内置的授权和/或身份验证库,那将更好。如果存在有关默认身份验证配置的信息,则可能有一种方法可以更改这些默认值-ASP.NET Core授权和身份验证已得到了很大改进,以支持大多数常见方案。我建议为这两个功能项目选择一个预先存在的库,并在遇到问题时发布有关它们的问题。

答案 1 :(得分:0)

完全取决于您。但我不建议在体内传递令牌。

在发布请求中,您必须将一些数据与令牌一起传递,然后您的请求主体将如下所示

{
"Token":"sdfjklsklfjsdkljfskljflskjfskljflsdk",
"data":{
         "FirstName":"Pankaj",
         "LastName":"Rawat"
  }
}

C#Employee.cs

Public class Employee
{
public string FirstName {get; set;}
public string LastName {get; set;}
}

您将无法直接将您的帖子数据与类型对象进行映射,而您需要编写额外的代码来分离令牌和数据。

大多数时候,每次您需要反序列化请求正文以获取令牌时(即使令牌无效或不存在),我们都会在方法主体中传递所有大的JSON参数

您可以编写自己的Auth过滤器,但应在请求标头中传递令牌

答案 2 :(得分:0)

将来,您可能必须针对不同的内容类型案例添加多个后备。假设现在您要将数据作为 json字符串传递给正文,后来希望在使用 form-data (支持文件)的新API中处理身份验证,那么您最终将处理多个案件。

我建议您使用标头处理与身份验证相关的信息。 Authorization header

(由您选择使用现有库还是构建自己的库)