在现有的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/ 基本上,您可以使用会话保存超时,并在想要扩展时更新它。 –