我的网络API使用OAUTH身份验证。这意味着对API的所有调用都包含一个令牌,该令牌是某种用户。
现在,我想做的是根据令牌设置全局变量。在实践中,我有一系列用户,根据用户,我想应用不同的“配置文件”。这意味着在我的服务层中,我希望能够访问诸如以下的调用:
ProfileSettings.Notification.SendEmails
当我收到带有令牌的API调用时,我想设置这个全局值。
我想到的流程是:
我的问题是:
这是正确的做法吗?您将如何设置一些“全局设置”,具体取决于您接到来电的令牌/用户?
答案 0 :(得分:2)
由于令牌用于授权用户,您可以将配置文件详细信息添加为用户原则的声明,该原则应该在成功验证/授权后与请求相关联。
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);
}
}
//...