2

I've seen a couple of software packages run as a service on an active directory controller which captures a password change initiated by a user. My application needs to know what the newly changed password is for a user to propagate across other systems. Does anyone know how this is done? Thanks.

BTW, I'm writing in C#, but other .net languages are welcome.

Neon Blue
  • 371
  • 6
  • 15

1 Answers1

2

You will need to create a Password Filter on the Active Directory Server, specifically the PasswordChangeNotify callback. Unfortunately to use one you must make a COM Server DLL which really shouldn't be written in .NET.

However, there is a 2nd option. There is a open source password filter I have used in the past that worked well called Password Hook. That password filter will launch a 2nd program (as defined in the registry) and pass in the password info as command line arguments (like your .NET program to update the other services of the password change).


†: I saw a good posting here on SO on why you should not use .NET in windows components when I was looking in to password stuff a year ago, but I can't find it again. If anyone else can find it, please feel free to edit in the link

Scott Chamberlain
  • 124,994
  • 33
  • 282
  • 431
  • 1
    Thanks; I just looked at the password hook. While I'm not going to be able to use it; it will provide guidance in writing this. Also, the above link from Arshad contains another link in how to do this with C#. It looks like the password hook program is using VC++ .net.... I dug around a while yesterday and couldn't find any reason why not to write this in .net. I would be interested in reading that though if it were out there somewhere. – Neon Blue Mar 24 '13 at 14:22