# 匿名

> 原文： [https://docs.oracle.com/javase/tutorial/jndi/ldap/anonymous.html](https://docs.oracle.com/javase/tutorial/jndi/ldap/anonymous.html)

如上所述，如果未设置认证环境属性，则默认认证机制为`“无”`。如果客户端将 [`Context.SECURITY_AUTHENTICATION`](https://docs.oracle.com/javase/8/docs/api/javax/naming/Context.html#SECURITY_AUTHENTICATION)环境属性设置为`“无”`，则认证机制为`“无”`和所有其他身份验证环境属性被忽略。您可能希望仅显式执行此操作，以确保忽略可能已设置的任何其他身份验证属性。在任何一种情况下，客户端都将被视为 _ 匿名 _ 客户端。这意味着服务器不知道或不关心客户端是谁，并且将允许客户端访问（读取和更新）任何已配置为可由任何未经身份验证的客户端访问的数据。

由于[命名和目录操作](../ops/index.html)课程中的任何目录示例都没有设置任何身份验证环境属性，因此所有这些都使用匿名身份验证。

这是 [`an example`](examples/None.java) 明确地将 `Context.SECURITY_AUTHENTICATION` 属性设置为`“无”`（即使这样做并非严格必要，因为这是默认值） 。

```
// Set up the environment for creating the initial context
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

// Use anonymous authentication
env.put(Context.SECURITY_AUTHENTICATION, "none");

// Create the initial context
DirContext ctx = new InitialDirContext(env);

// ... do something useful with ctx

```