Tuesday, July 21, 2020

NAV Classic - Database Login To Windows Login.

Hi Readers,

Most of you may not want to see this, but I would like to keep this information for me.

As most of you know that I live and breath Upgrades for Dynamics NAV / Business Central.

Currently I am upgrading a customer from NAV 4 Native to Business Central. As its challenging there is so much learning too.

#DynamicsNAV


Customer is using database logins and they had so many users. As I knew that I will have to port them to windows login sooner than later so why not now.

I started thinking easy way to do it.

Here is the way - 

1. Asked Customer for User mapping - Database user name & Windows User Name.

2. Import that data in a temp table using Dataport and write a script to create windows account in database and also copy assigned Roles from database user to Windows User.

The only problem that I faced was - Windows Login (2000000054) have primary key SID.

I know I had done those conversions in future versions of the product, but how you do that in NAV 4.

To My surprise after little bit of searching I found out that there was a virtual table - "SID - Account ID".

With this virtual table you can get the SID for a Windows User Account (ID).

Sample Code - 

SIDAccountID.SETCURRENTKEY(ID); // This line is important. Set it to ID if you want to find SID
SIDAccountID.ID := 'DOMAIN\USERNAME';
IF SIDAccountID.FIND THEN
  MESSAGE('%1\%2', SIDAccountID.ID, SIDAccountID.SID);

Hope this article helps you.

I am sure I will have so many learnings with this project. If I find something useful, I will share that.

Read More about  SID- Account ID Virtual Table here.

Mibuso Article

Regards,
Saurav Dhyani
https://www.sauravdhyani.com/

1 comment:

Popular Posts