在現有的Silverlight應用程序中,我將WCF服務替換爲ServiceStack的身份驗證...我成功地設法移植了所有服務並對它們進行了測試..我有一個最後一點看看...身份驗證ServiceStack.NET從ASP.NET中移植身份驗證
當前我使用基於CustomMembershipProvider的Asp.NET身份驗證,該身份驗證用於檢查用戶是否可以訪問應用程序。
在我的每個服務方法的我有什麼作爲
public bool DoSomething(int idUser, string prefix)
{
if (!HttpContext.Current.User.Identity.IsAuthenticated) throw new SecurityExeption();
//some computation
return res;
}
,它工作正常... 現在我特林落實ServiceStack同樣的事情,我已經建立了我AuthProvider如下
公共類myAuthProvider:CredentialsAuthProvider { 公共覆蓋布爾TryAuthenticate(IServiceBase authService,用戶名字符串,字符串密碼){ 如果 (用戶名== 「測試」 & & password ==「test」) return true;
return false;
//return base.TryAuthenticate(authService, userName, password);
}
public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IOAuthTokens tokens, Dictionary<string, string> authInfo)
{
authService.SaveSession(session, SessionExpiry);
}
}
並測試了一個樣本項目(我保證我會在部署之前刪除測試/測試!)
我試圖檢查HttpContext.Current.User.Identity.IsAuthenticated是我通過SS服務驗證後有效,但我得到一個錯誤...我做錯了什麼或者ServiceStack不會在asp.net上構建身份驗證?我是否從錯誤的AuthProvider中尋找?我希望讓所有feauter堅持爲通過web.config文件等
感謝
感謝Byron Lo,我已經讀過SS實現與任何ms模型無關的事實......您知道SS如何實現Sliding Period of Session嗎?謝謝 – advapi
它不,但你可以輕鬆地自己做。以下是一些示例: http:// stackoverflow。com/questions/14857921/how-to-advance-the-session-timeout-in-servicestack http://teadriven.me.uk/2013/02/14/sliding-sessions-in-service-stack/ 基本上,您可以使用會話保存超時,並在想要擴展時更新它。 –