Servicestack - 自动调用AuthProvider

时间:2014-01-23 20:01:27

标签: servicestack

我想建立自己的AuthProvider。它应该

  1. 检查是否设置了ss-id cookie并检查有效会话(这是 在servicestack中自动完成)
  2. 如果未找到有效会话,请检查自定义http-header(例如X-Api-Token)
  3. 如果找到有效令牌,则创建新会话
  4. 如果未找到有效令牌,则发送401 Unauthorized
  5. 基本上这是CredentialsAuthProvider的行为,除了我需要检查X-Api-Token而不显式调用/ auth / credentials。但是,AuthProvider永远不会自动调用。

    有任何想法如何完成这项工作?

    编辑:一个想法是使用请求过滤器,但仍然缺少一些东西:

    this.GlobalRequestFilters.Add((request, response, arg3) =>
       {
          //If there is a valid ss-id cookie the it should have precedence and the request should be authenticated accordingly
          if (!ValidatedViaSsIdCookie())
          {
             if (HeaderHasCorrectApiKey()) {
                //Authenticate the current request by creating a new Session
                AuthenticateRequest();
             }
          }
       }
    );
    

    如何实现ValidatedViaSsIdCookie()和AuthenticateRequest()???

    编辑:我不认为GlobalRequestFilters是可行的,因为它们将在认证后执行...因此,如果没有有效的会话,则根本不执行过滤器,我的Api密钥永远不会被检查...仍在寻找更好的解决方案......

    此致

    德克

0 个答案:

没有答案