我有一个ASP.NET API,它使用基本身份验证来验证用户请求。新的设计要求意味着我现在必须使用3个字段进行身份验证(而不仅仅是用户名和密码)。
最好的方法是什么?我尝试将第三个字段插入体内并根据要求阅读。这有效,但感觉不对。有没有办法让第三个字段成为授权标题的一部分?
修改
我在用户名中添加了第三个字段(用' |'分隔)。 HTTP模块在到达时对报头进行解码和分割,从而允许3个字段请求认证。简单的解决方案。
答案 0 :(得分:1)
您可以将第三个字段放入另一个标题中。或者使用某种分隔符并将第三个字段连接到auth标头中。
答案 1 :(得分:1)
您无法在标题中添加任何其他内容 - 您只允许用户名:密码(Base64编码)。您可以添加其他标头或将数据包含在请求正文中。
基本身份验证并不实用 - 特别是对于像浏览器中运行的JavaScript应用程序这样的东西。您最终必须在服务器上代理API,因为否则会将凭据泄露给知道如何打开浏览器开发工具的任何人。
我希望使用基于令牌的方法来保护您的API。例如。 JWT或OAuth。