ECTS: WebPart error

Apr 16, 2009 at 7:04 AM

as described in this post: I'm having problems with the external users management web part because the password expiration policy is set to 0. I don't have access, nor am I allowed to alter this policy setting since it's company wide. As I understand, there's no other way of configuring this setting apart from altering the global active directory policy (since the server is a domain member). If that's the case; how am I going to make this work? Could someone perhaps send me a version of the webpart which doesn't crash on this bug?

Kind regards,

Apr 29, 2009 at 12:29 PM
Great support guys... posts here and on MSDN and not a single reply. Does really no one knows how to fix this?
Apr 29, 2009 at 7:17 PM
A quick google search tells me that ADAM doesn't support it's own policies; it's not implemented that way.  So the only way to override the domain password policy is to disable it altogether in ADAM with ADAMDisablePasswordPolicies=1

I don't know if that will help you in this situation, though, because I think the exception will still be thrown. 

I think the reason you're not seeing a lot of folks lining up to answer your questions on the ECTS is that it wasn't written by any of the volunteer developers in the CKS, it was developed by the SA-SC team, and the source code turned turned over to the public via the CKS on CodePlex. 

You could, of course, open the source code and fix the issue.  I'm not familiar with the ECTS source, as I've been mostly involved with the CKS:FBA solution, but a brief look at it (via the Source Code tab on this page) tells me the bug is in the PasswordLifetime() method:

if (result.Properties.Contains(val))
          // bugbug: math error when no domain PWD policy
          ticks = Math.Abs((long)result.Properties[val][0] );


Someone even commented it. 

I suppose if the PasswordLifetime method returned a very large TimeSpan in that case, it would be "good enough".  You could even wrap the math in a try-catch block and set ticks equal to some really large (but supported) number in the catch block. Like Int64.MaxValue.  Not an ideal solution, but probably good enough for now.

Mike Sharp

Apr 29, 2009 at 7:23 PM
I Forgot to tell you where that method is...


Mike Sharp
May 12, 2009 at 10:12 AM

Hi Mike,

thanks for your comments and sorry for the frustration on my part ;) These tips are very helpfull, I'll check if I can manage to edit the sourcecode to fix this problem. As for the support; it's a it odd no one here has worked on these sources, aren't they in the wrong place then?

Kind regards,


May 12, 2009 at 1:17 PM


perhaps you could assist me once more? I've used turtoiseSVN to download the sources and adapted the code. I've surrounded the math with a try/catch as u suggested and recompiled to check whether this actually works. The resulting DLL has a different keytoken from the ones in the ECTS toolkit. If I replace the old one with my newly compiled one, the whole thing crashes because the tokens don't match. It's compiling against the snk file that came with the sourcecode, so how can the key be wrong?

Any idea on how to fix this?

Cheers, Jasper

May 22, 2009 at 9:16 PM

Anyone? I would really like to get this working (and perhaps help others with the same problem)!

Jun 15, 2009 at 8:19 PM

Sorry for kicking it up once more, but I still haven't got a proper solution to get the publickeytoken to match the ones in the downloaded installer.

Jul 22, 2009 at 7:49 PM

I just checked out the properties on the assemblies assocated with the ECTS and it gave me this for the publickeytoken 31bf3856ad364e35

Mar 12, 2010 at 3:12 AM


 I am having Error in user manager web part and the error message is "UserManager" Web Part appears to be causing a problem. Negating the minimum value of a twos complement number is invalid.

 I have tried all the possible solutions perviously suggested by the codeplex forum.
 Also i donot have rights to modify the password expiration policy in Active directory as it is company wide. Is there any other solution for this?

Please suggest.