Ok, this is not new information - actually, it is so old that I had almost forgotten and had to fiddle around with some details to make it work. Therefore, I thought I might as well describe the process for everyone else to avoid wasting time on it.
The situation is that you want to customize what information you want your user to use to identify themselves. It could be an employee id or a username that the user select themselves. In a standard Domino directory you have the option to select (under the security tab in the server document):
If you look at the design of the Server form you will see that the field HTTP_AuthView is controlling this setting. Depending on the value you select this field will hold either "($Users)" or "($LDAPCN)" (respectively). These values point at two views that control what information the user can use to identify themselves.
Now, you have a couple of options to control the login identification:
The last two options require the same considerations from you. I have an application that will allow users to register themselves and use the information for login. I do not want to use our primary directory or a secondary directory for this purpose. The application will know the user object (yes, a lot of Java beans here.... - but that is another story) and, therefore, there is no need to duplicate this information into a directory etc.
So I created a view in my application, named it something suitable like "UserLogin" but gave it two aliases (separated by the pipe character): "($Users) | ($LDAPCN)". This way the server will find exactly this view independently of how the server document was configured. Of course you also have to set up Directory Assistance for this extra "directory" (which is my application) - and remember to set it to Yes for "Trusted for credentials"
Now back to the view:
And that is it!
A quick note on the HTTPPassword field.
f you have followed along you now have your own directory service where you have full control over the way the users identify themselves - and it is fully integrated with your application.