WebAPI - 为什么在无状态模式下需要设置Principal?

时间:2013-10-10 22:15:04

标签: c# asp.net-web-api iprincipal

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

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

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

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

1 个答案:

答案 0 :(得分:2)

Principal是.NET的身份机制。

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