2013-11-04 155 views
1

我在註冊Servicestack中的自定義身份驗證提供程序時遇到了一些問題。我用以下爲我服務配置驗證:註冊Servicestack自定義身份驗證提供程序

 Plugins.Add(new AuthFeature(() => new CustomUserSession(), 
       new IAuthProvider[] { 
        new VendorAuth(appSettings), 
        new FacilitiesAuth(appSettings) 
       }, null)); 

作爲測試,第一個身份驗證提供者只需設置總是成功:

public class VendorAuth : CredentialsAuthProvider 
    { 

     public VendorAuth(AppSettings appSettings) : base(appSettings) { } 

     public override object Authenticate(IServiceBase authService, IAuthSession session, Auth request) 
     { 
      return base.Authenticate(authService, session, request); 
     } 

     public override bool TryAuthenticate(IServiceBase authService, string userName, string password) 
     { 
      return true; 
     } 
    } 

這是我的理解可能會下降分開一點。但是在客戶端,我想獲得的「VendorAuth」供應商以這種方式:

public class VendorAuth : Auth 
    { 
    } 

 

var AuthResponse = client.Post(new VendorAuth 
    { 
     provider = "credentials", // This may be an issue 
     UserName = "someuser", 
     Password = "somepass", 
     RememberMe = true 
    }); 

這似乎總是返回405當客戶端嘗試進行身份驗證:

POST /json/syncreply/VendorAuth HTTP/1.1" 405 

所以我想這個問題是...是否顯示好像我正確註冊我的自定義auth提供程序?

+0

這是你正在嘗試做的帖子的網址? –

+0

嘗試更改VendorAuth:Auth與另一個名稱,也許這會導致您與auth提供商發生衝突。 –

回答

0

執行下列規定:

public override bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null) 
{ 
    return true; 
} 

這可能是失敗的調用。如果它現在可以工作,請將return true替換爲對基本實現的調用,並通過它進行調試以找到導致失敗的代碼。

相關問題