servicestack auth在4.0.21中断

时间:2014-07-09 19:37:11

标签: authentication servicestack

我最近升级ServiceStack时遇到问题。我将不同的版本分开,以找到从v4.0.21开始的问题。所有早期版本都可以使用,所有更高版本都不起作用。它只发生在我的身份验证调用(使用Basic Auth)。此外,它只发生在我通过iPad应用程序进行身份验证调用时。由于我们没有对我们的iPad应用程序进行任何更改,因此我知道ServiceStack发生了一些问题,导致了我们的问题。我查看了发行说明,发现由于添加了Windows Auth Provider和其他一些新的OAuth提供程序,auth功能发生了很多变化。

我需要对发布说明中没有看到的设置进行一些更改吗?还有其他人遇到过这个问题吗?

以下是我们在global.asax.cs中注册ss-auth的代码:

public override void Configure(Funq.Container container)
{
   SetConfig(new HostConfig {
      EnableFeatures = Feature.All.Remove(Feature.Metadata),
      AllowJsonpRequests = false,
      HandlerFactoryPath = "api"
   });

   var authFeature = new AuthFeature(
          () => new AuthUserSession(),
          new IAuthProvider[] { 
                new MyBasicAuthProvider() // override of BasicAuthProvider
          }
   );
   authFeature.HtmlRedirect = null;
   authFeature.IncludeAssignRoleServices = false;
   Plugins.Add(authFeature);

   container.Register<ICacheClient>(new AzureCacheClient("default"));

   var userRepository = new InMemoryAuthRepository();
   container.Register<IUserAuthRepository>(userRepository);
}

以下是请求网址:

POST https://vh.azurewebsites.net/api/auth?format=json

以下是与HTTP请求一起使用的标头:

Host:              vh.azurewebsites.net
Authorization:     Basic dXN2dONjb3R0OnBhc3N3b3Jk
Accept-Encoding:   gzip, deflate
Accept:            application/json
Cookie:            ss-opt=perm
Accept-Language:   en;q=1, fr;q=0.9, de;q=0.8, ja;q=0.7, nl;q=0.6, it;q=0.5
Content-Length:    0
Connection:        keep-alive
Proxy-Connection:  keep-alive
User-Agent:        mHealth/QA (iPad; iOS 7.1.1; Scale/1.00)

1 个答案:

答案 0 :(得分:1)

auth提供程序已更改,现在可以使用隐式默认/auth to tell if a user is authenticated如果用户已经过身份验证将返回会话信息,如果不是401 Unauthorized则会返回

您需要为您要进行身份验证的身份验证提供程序调用显式/auth/{provider} Auth Provider Route,而基本身份验证为/auth/basic