Accessing data within a Lotus Notes NSF file using C#

Posted on 2008-10-09
Last Modified: 2013-12-18
Hi experts,

I'm after a light weight solution that will allow me to access an NSF database using .Net.  By light weight I mean not having to install the full Lotus Notes Client.  I realise this might be a bit of a stretch but I'd at least like to try and establish a list of the dlls that are required.

In terms of functionality I only need to get an item count and possibly iterate all items and get the attachment count as well.  I can see how to do this in the Lotus Notes C++ API.

My main question is which API should I be using?  Is there a set of COM dll's available that I can use through .Net?  Has anyone successfully connected to an NSF through C#?  Are there any code samples available?

Question by:hdkelly
  • 4
  • 3
LVL 46

Expert Comment

by:Sjef Bosman
ID: 22676893
IMHO: forget it, if you try this with a local Notes database.

If you connect to a server, you can use Java, via DIIOP you can connect to the Domino server.

Alternative: don't open the database but use HTTP to open the database.

Author Comment

ID: 22677226
OK, it seems that the Domino Object Model (domino.dll) is the accept method of COM communication.  I have prototyped a solution using this API that meets my needs.

My question is can I get this prototype to work on a machine without the Notes client installed?  Furthermore, is there anyway to access an NSF database without having the client installed?  I'd like to hope there is as I don't want to distribute the client with my solution.
LVL 46

Expert Comment

by:Sjef Bosman
ID: 22677319
> ... can I get this prototype to work on a machine without the Notes client installed?  

> Furthermore, is there anyway to access an NSF database without having the client installed?

a) Java, DIIOP, Domino server.

But, by all means, wait for others for their opinion.
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.


Author Comment

ID: 22677390
I'm beginning to accept that you are right.

As a last gasp attempt, is there a subset of required files that can be isolated from the Notes Client install and distributed\registered manually?  Or does domino.dll rely on a whole heap of other configuration and registry settings?
LVL 46

Accepted Solution

Sjef Bosman earned 250 total points
ID: 22677621
AFAIK there are no settings in the registry (or very few). But there is a file notes.ini, which is used extensively for settings and other parameters. I understand your question, it seems valid, but you should also know that the majority of Notes environments really value its impenetrability. What you're trying to do violates at least one but maybe more of the security principles of  Notes.

Anyway, if you want to interact with a Notes database, you are de facto a user, and therefore are required to have a user licence, which is the price of a Notes client. You could say that the Notes client is free, but to use it costs you a user licence.

So, in fact, it is up to your end-user to acquire a Notes client and take care of the licensing issues. All you should do is make sure your solution works together with a Notes client. Using COM is one solution, apparently you managed to use it in your application already.

Honestly, I never tried a minimal installation, it might even be fun. And it might even work, although I don't know how Notes would ask for the password that comes with the id-file you allways need. In any case,  if you copy those files to PC other than the one you installed them on I'd say you'd be violating the copyrights of Lotus Notes...

Author Comment

ID: 22678509
Cheers for the response,

I would certainly expect to pay for a client license on each machine I interacted with an NSF on.  I am not trying to avoid this cost rather I am trying to streamline my deployment process.  And although it is heading that way, I would have preferred not to have a Notes Client install as a prerequesit for running my service.

I am interacting with individual NSF files removed from their native environment and network, so maintaining security in my workflow is not an issue.

I am aware of the importance and function of the notes.ini file.  I'm not prepared to experiment in order to find a skeleton install that works, as unfortunately I don't have the time.  If this is something you come across in the future please contact me.  Otherwise I appreciate your help, your advice has been valuable.

LVL 46

Expert Comment

by:Sjef Bosman
ID: 22678757
Thanks as well.

> I am interacting with individual NSF files removed
> from their native environment and network, so
> maintaining security in my workflow is not an issue.
It might not be an issue on your side, but on the side of the original owner of the NSF files! I for one wouldn't be too happy in discovering that you can fiddle with my mail database... ;-))
But you're right when you say that I should have used encryption if I want my data secure. To rely only on Notes' built-in access rights is not enough.

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Creating a new theme in discussion8.ntf 6 158
Validating Email Address 13 277
Querying received e-mails from an agent 7 203
Lotus Domino server 11 55
For Desktop Techs: How to retain a user's Notes configuration data when swapping out the end user's computer. (Assuming that you are not upgrading to a completely different version of Notes client) All you need to do is: 1) install Notes o…
Lack of Storage capacity is a common problem that exists in every field of life. Here we are taking the case of Lotus Notes Emails, as we all know that we are totally depend on e-communication i.e. Emails. This article is fully dedicated to resolvin…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now