System.Runtime.InteropServices.COMException: указанный сетевой пароль неверен. (Исключение из HRESULT: 0x80070056) - PullRequest
0 голосов
/ 09 февраля 2012

Я получаю сообщение об ошибке ниже, время от времени, когда я пытаюсь сменить пароль пользователя ... не каждый раз или даже каждые 10 раз ... это только пока происходит в нашем живом производстве окружающая среда.

источник довольно прост, даже в стековой трассировке

ActiveDirectoryMembershipProvider.ChangePassword(String username, String oldPassword, String newPassword)

Прямо перед этим я проверяю имя пользователя и старый пароль ..

if ( !Membership.ValidateUser ( cpCv.LoginName, cpCv.OldPassword ) )
                {
                    sMsg = "Failed to validate, old password is probably incorrect.";
                    return sMsg;
                }

Так что это должно быть правильно, и связь с рекламой должна быть правильной, но тогда почему НОВЫЙ пароль неверен?

Что я не могу понять, так это то, ПОЧЕМУ пароль считается неправильным.

Пароль для AD на членстве провайдера в web.config? пользователи старые passowrd? Новый?

Что-то еще?

Кто-нибудь знает, как выяснить, какой пароль ему не нравится, или, честно говоря, есть какие-либо намеки на это исключение?

Мне кажется, что это как-то связано с аутентификацией или истечением сеанса, или это будет радовать 100% времени (если пароль действительно неверен)

Спасибо

кальцит

System.Runtime.InteropServices.COMException: The specified network password is not correct. (Exception from HRESULT: 0x80070056)
Generated: Wed, 08 Feb 2012 22:54:18 GMT

System.Web.HttpException (0x80004005): Exception of type 'System.Web.HttpException' was thrown. ---> System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.InteropServices.COMException: The specified network password is not correct. (Exception from HRESULT: 0x80070056)
   --- End of inner exception stack trace ---
   at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args)
   at System.Web.Security.ActiveDirectoryMembershipProvider.ChangePassword(String username, String oldPassword, String newPassword)
   at Jcdc.AccessControl.ChangePassword.DoChangePassword(String sMsg) in d:\CC\StudentPortal3G\Source\StudentPortal3G\AccessControl\ChangePassword.aspx.cs:line 129
   at Jcdc.AccessControl.ChangePassword.Button1_Click(Object sender, EventArgs e) in d:\CC\StudentPortal3G\Source\StudentPortal3G\AccessControl\ChangePassword.aspx.cs:line 50
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
   at System.Web.Util.AspCompatApplicationStep.EndAspCompatExecution(IAsyncResult ar)
   at ASP.accesscontrol_changepassword_aspx.EndProcessRequest(IAsyncResult ar) in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\44dfbb4a\ab9ba47b\App_Web_aky3zvas.1.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)

Server Variables 
Name    Value
Page    https://live.jobcorps.org/AccessControl/ChangePassword.aspx

Time    2/8/2012 4:54:18 PM Central Standard Time
IP Address  10.111.50.131
MachineName     JCDC-S-SAW-001
JCDC User   Jackson.David
--------------------    ---------------------------------------------------------------------------------
Powered by ELMAH, version 1.0.10617.936 (debug; BETA3; net-3.5). Copyright (c) 2007, Atif Aziz. All rights reserved.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

В качестве первого шага просто добавьте временную регистрацию в accesscontrol / changepassword_aspx для введенного имени пользователя / пароля.Свяжите их с тем, что показывает ELMAH.

Вероятно, это сбой пароля пользователя (старого), а не что-либо из web.config.

Здесь есть интересное примечание: http://forums.asp.net/t/1299086.aspx/1


If you are using integrated, then how are you able to provide 
the CurrentPwd for the ChangePassword call? (The password is
 never available in cleartext)

If the user is already authenticated, then you don't have
 to use ChangePassword. Instead, you can use SetPassword 
to force the new password regardless of the old password: 
user.Invoke("SetPassword", new object[] {newPwd});

Это может быть одним из решений для вас.

1 голос
/ 09 февраля 2012

Попробуйте поискать в окне просмотра событий на компьютере, генерирующем ошибку, особенно в журналах безопасности.Там вы можете обнаружить ошибку, в которой упоминается, для какой учетной записи был предпринят неверный пароль.

...