将httpOnly标志添加到ss-id/ss-pid服务栈cookie

问题描述:

我正在使用服务堆栈来处理自托管的Windows HTTP服务,我有一个实现基本身份验证(用户名/密码)以验证调用应用程序的请求。这是我现在使用的代码,它的正常工作:将httpOnly标志添加到ss-id/ss-pid服务栈cookie

 Plugins.Add(new AuthFeature(() => new AuthUserSession() {}, 
new IAuthProvider[] { new BasicAuthProvider() })); //CustomBasicAuthProvider() 

     container.Register<ICacheClient>(new MemoryCacheClient()); 

     var userRepository = new InMemoryAuthRepository(); 
     container.Register<IUserAuthRepository>(userRepository); 
     string hash; 
     string salt; 

     new SaltedHash().GetHashAndSaltString("passwordinhere", out hash, out salt); 
       userRepository.CreateUserAuth(new UserAuth() 
       { 
        Id = 1, 
        DisplayName = "userdisplayname", 
        UserName = "usernameinhere", 
        PasswordHash = hash, 
        Salt = salt 
       } 
        , "app"); 

当我检查响应头从我的服务来我清楚地看到,它包含2块饼干:

的Set-Cookie:SS -id = dT8Yy6ejhgfjhgfkVvcxcxCNtngYRS4;路径=/

的Set-Cookie:SS-PID = p4lsgo18JhYF4CTcxkhgkhgffRZob;路径= /;过期=星期五,2037年1月9日12点17分03秒GMT

我需要配置ServiceStack添加; httpOnly标记为这些cookie用于安全目的,但我找不到如何去做吧。

所以,大家,任何人都有一个想法如何做到这一点?任何想法都非常受欢迎。

在此先感谢您的帮助:)

您可以控制HttpOnly标志是否是在饼干设定Config.AllowNonHttpOnlyCookies默认为false所以总是设置HttpOnly标志。不幸的是,这个设置被自主服务器忽略,现在已经解决了this commit,默认情况下,这个设置现在将为所有Cookie填充HttpOnly标志。

此更改从v4.5.5 +现在可以获得available on MyGet

+0

感谢您的回复 –