为什么Redis连接在没有指定凭据的情况下从C#起作用

时间:2016-02-24 14:25:43

标签: c# redis

为什么Redis连接在没有指定凭据的情况下从C#开始工作?我有这个代码工作并连接到远程服务器。我的客户端机器是Windows,REMOTE-MACHINE是Linux服务器。这是否意味着局域网中的任何人都可以连接?

 public class RedisConnectorHelper
    {                
        static RedisConnectorHelper()
        {
            RedisConnectorHelper.lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
            {
              return ConnectionMultiplexer.Connect("REMOTE-MACHINE");
            });
        }

        private static Lazy<ConnectionMultiplexer> lazyConnection;        

        public static ConnectionMultiplexer Connection
        {
            get
            {
                return lazyConnection.Value;
            }
        }
    }

2 个答案:

答案 0 :(得分:2)

Redis的默认行为允许它接受连接而不指定任何凭据来执行此操作。如果要更改此设置,请修改Redis .conf文件,使其更符合您的喜好。至于你的局域网问题,我不知道你的网络是如何配置的,所以我真的无法为你解答。

答案 1 :(得分:1)

来自Redis Security页面:

  

Redis旨在由受信任环境中的受信任客户端访问。这意味着通常不会将Redis实例直接暴露给Internet,或者通常是不受信任的客户端可以直接访问Redis TCP端口或UNIX套接字的环境。

提供了一些使用密码存储在配置文件中的非常基本的身份验证,但正如文档所述,it provides a tiny layer of authentication

安全性必须在网络级别实施,包括防火墙,端口阻止,SSL。 Redis本身不提供SSL,但您可以使用SSL代理,例如Amazon和Azure等云提供商,将SSL代理放在其集群前面。

StackExchange.Redis这样的Redis客户支持SSL,例如在connection string中设置ssl=true