c# - 如何使用 ServiceStack.Redis 客户端向 Redis 发送任意命令?

标签 c# redis servicestack

Redis security best practices建议重命名命令以抑制未经授权/意外的执行。 使用 ServiceStack.Redis 客户端发出任意(重命名)命令的最佳方式是什么?

到目前为止我们所做的尝试:我们已将 PUBLISH 命令重命名为 HSILBUP。我尝试使用以下代码块发出 HSILBUP 命令。这会在调用 FlushSendBuffer 时导致空引用异常。我使用这些方法是因为它们的名字暗示了我想要的行为。我不知道这是否是他们的预期功能。

var command = new[]
{
    ToByteArray("HSILBUP"),
    ToByteArray("channel"),
    ToByteArray("message")
};

redisClient.WriteAllToSendBuffer(command);
redisClient.FlushSendBuffer();

最佳答案

最简单的更改是直接在 ServiceStack.Redis 项目代码中进行更改。您需要更改 Commands.cs

将此更改为:

public readonly static byte[] Publish = "PUBLISH".ToUtf8Bytes();

到:

public readonly static byte[] Publish = "HSILBUP".ToUtf8Bytes();

关于c# - 如何使用 ServiceStack.Redis 客户端向 Redis 发送任意命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923080/

相关文章:

c# - Entity Framework : Can I Include() properties of subtypes?

configuration - redis集群不同的机器

ServiceStack OrmLite 如何实现外键/相关属性的自动设置?

asp.net-mvc - 'ServiceStack.MiniProfiler.IHtmlString' 不包含 'AsRaw' 的定义

rest - 在 ServiceStack 中组合 URL 和 POST 变量

c# - 与类名同名的命名空间

c# - 将数据序列化到 json 文件时出错

java - 无法通过 Jedis 建立连接

c# - 从数据库种子方法调用异步方法

linux - 是否可以通过redis-cli设置日志文件,但不编辑redis.config文件?