我有我的网络API,它使用OAUTH身份验证。这意味着对 API 的所有调用都包含一个令牌,该令牌是某种用户。
现在,我想做的是根据令牌设置一个全局变量。在实践中,我有一系列用户,根据用户的不同,我想应用不同的"配置文件"。这意味着在我的服务层中,我希望能够访问如下调用:
ProfileSettings.Notification.SendEmails
当我收到带有令牌的 API 调用时,我想设置此全局值。
我想到的流程是:
- API 接收调用
- 在某些过滤器中(我猜?(,我们找出它是哪个用户,然后根据用户,我们找到正确的配置文件
- 我们根据结果设置一些全局变量
- 服务可以使用这个
我的问题是:
这是正确的方法吗?您将如何根据您收到呼叫的令牌/用户设置一些"全局设置"?
由于令牌用于授权用户,因此您可以将配置文件详细信息作为声明添加到用户原则中,一旦成功进行身份验证/授权,该声明应与请求相关联。
const string SendEmails = "ProfileSettings.Notification.SendEmails"
//...as IPrincipal being set
if (identity != null && identity.IsAuthenticated) {
ClaimsIdentity claimsIdentity = identity as ClaimsIdentity;
if (claimsIdentity != null) {
var claim = new Claim(SendEmails, "{set value based on user}");
claimsIdentity.AddClaim(claim);
}
}
//...