MembershipUser.ResetPassword不执行存储过程

时间:2012-04-13 14:15:30

标签: sql c#-4.0 membership-provider

在我们的生产环境中重置密码时,我们遇到了“iDesign Credentials Manager”MVC应用程序的问题。它抛出的错误是

  

System.ServiceModel.CommunicationObjectFaultedException:The   通信对象,System.ServiceModel.Channels.ServiceChannel,   不能用于通信,因为它处于Faulted状态。

因为这是一个普遍的错误,并且没有描述.net会员集会内部真正发生的事情,我开始在代码之外寻找。

生产环境是SQL Server 2k5,Dev环境是SQL Server 2k8。我从生产中删除了代码,将CredentialsManager.ConnectionStrings.config文件中的连接字符串更改为指向我们的开发人员数据库,应用程序的工作方式和代码库的开发版本一样。

当我们尝试密码重置连接时,我聘请了DBA在SQL数据库上运行探查器。这是他的评论

  

我在prod中看到的最后一件事是exec   dbo.aspnet_Membership_GetUserByName,之后什么都没有。在DEV中,   在执行那个之后,我看到它执行了   dbo.aspnet_Membership_GetPasswordWithFormat然后   dbo.aspnet_Membership_ResetPassword然后执行   dbo.sapnet_Membership_GetUserByName然后再似乎是   成功重置结束。**

他们正在使用SSL证书,但DBA已验证Cert在生产数据库上未过期。

有人有任何想法吗?

以下是CredentialsManager.Membership.config的内容,对于我们当前设置的两个应用程序,Allow reset为true。

    <membership
      userIsOnlineTimeWindow="15"
      defaultProvider="DTCSQLMembershipProvider">
  <providers>
    <clear/>
    <add
      name="DTCSQLMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="AspNetDbConnectionString"
      applicationName="/DTCWebService"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false"
      passwordFormat="Hashed"
      minRequiredPasswordLength="40"
      minRequiredNonalphanumericCharacters="10" />
    <add
      name="QRSQLMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="AspNetDbConnectionString"
      applicationName="/QRWebService"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false"
      passwordFormat="Hashed"
      minRequiredPasswordLength="40"
      minRequiredNonalphanumericCharacters="10" />
  </providers>
</membership>

0 个答案:

没有答案