c# - “清理”不记名令牌的更好方法
问题描述
我正在从当前请求中添加身份验证标头令牌,以便可以访问另一个 API,但是当我添加AuthenticationHeaderValue
方案(不能为空白)时,它会在令牌中复制“Bearer”......所以我只是调用了 Replace()让它工作......
var rawToken = this.HttpContext.Request.Headers["Authorization"];
var cleanedToken = rawToken.ToString().Replace("Bearer ", "", StringComparison.OrdinalIgnoreCase);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", cleanedToken);
HttpResponseMessage response = await httpClient.SendAsync(requestMessage).ConfigureAwait(false);
但是这个对 Replace() 的调用感觉就像一个肮脏的 hack。是否有经过实战考验的库方法来处理这个问题?
解决方案
使用AuthenticationHeaderValue.Parse(rawToken)
应该可以完成这项工作,因为它会自动从原始值中提取“承载”方案(或任何其他方案)和令牌,从而无需显式传递它。
推荐阅读
- oracle12c - Export OSB resources without using export wizard on JDeveloper
- python - 客户端、Google Flex App Engine 和 Cloud SQL 之间的高延迟
- python - pandas groupby 并在多列上应用函数
- r - 根据两个 data.frames/data.tables 计算因子级别的新列
- python - 如何在 PyQt5 中使用 connect 调用另一个类的方法
- c - 如何区分C语言中的两个日期时间-Loadrunner Web?
- oracle - 如何找到导致 ORA-01722 的不良数据
- java - 错误:无法找到或加载主类 [Intellij]
- postgresql - 为复杂的搜索查询创建索引
- python-3.x - group pandas DataFrame by one column and then get lists of values which occur in those categories from other column