2

我很困惑为什么在 WebAPI 中需要设置 Principal,因为每个调用都是完全无状态的。由于每个呼叫都应该是完全无状态的,因此使用您记录的用户信息进行设置有什么好处和原因?

我的印象是一个登录的用户正在获取一个服务器创建的令牌,这是每次调用都需要发送和转发的密钥,直到用户决定注销或令牌过期?

public Product Get(int id)
{
    string token = GetHeaderTokenSecurityAccess();
    return DataLayer.GetProduct(token, id);
}     

在这种情况下“需要”设置 IPrincipal 的主要原因是什么?

4

1 回答 1

2

Principal 是 .NET 的身份机制。

身份是一个包含所有层的概念,而不仅仅是 API 层。因此,下面的所有层都需要一种访问当前调用者身份的方法,这是通过设置包含 Principal 的 Thread Local Storage 上下文来实现的。

于 2013-10-11T07:58:24.263 回答