将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。
感谢您的回复 –