0

デフォルトのメンバーシップの設定に苦労しています。登録はできますが、後でアプリにログインできません。Membership.ValidateUser は常に false を返します。

これは私が使用している構成です:

<connectionStrings>
   <clear />
   <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:s09.winhost.com;Initial Catalog=*****;User ID=******;Password=**********;Integrated Security=False;" />
</connectionStrings> 

<profile defaultProvider="DefaultProfileProvider">
  <providers>
    <clear/>
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider"  hashAlgorithmType="SHA1">
  <providers>
    <clear/>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/goaly" />
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
  <providers>
    <clear/>
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
  <providers>
    <clear/>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
  </providers>
</sessionState>

<machineKey validationKey="2CE9C29E0CA905FA4CB11E7A20158566A1C7B0CFD9B94528B6758FB1B1588E2928B70F7D1EC2174CB1CB2C6AAB03F2D3848B502AEB46C60B7370A032FFDA716C" decryptionKey="6B0F32F19532E948C4431B9437A12F32BE56706DB3483205706ECCF2BDA7C167" validation="SHA1" decryption="AES" />

いくつかの質問を見てきましたなぜ Membership.ValidateUser() は常に false を返すのですか? しかし、マシン キーと hashalgoritm の設定の両方を追加してみました。

新しいユーザーを登録すると、dbo.Memberships テーブルと dbo.User テーブルに新しいレコードが作成されていることがわかりますが、ログインできません。

考えられる問題の 1 つは、ビューまたはストアド プロシージャが見つからないことです。正しく作成されると仮定して、それらを作成していません (User、UsersInRolesm Roles、Profiles、Memberships テーブルは自動的に作成されました)。

助けてくれてありがとう

ラルシ

4

2 に答える 2

0

その他の考えられる原因:

1: パスワードが正しくありません

2: ユーザーはロックされています

3: ユーザーは承認されていません

4: 他の何か???? さらに調査が必要です。つまり、以前は機能していましたが、機能しなくなりましたか? passwordFormat や memberhsip プロバイダーに何か変更を加えましたか....などなど。

ソース: http://forums.asp.net/t/1392208.aspx

于 2012-11-26T13:16:31.527 に答える
0

ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ!

ログインできない原因がわかりました。

私のアカウントコントローラー(mvc 4テンプレートによって作成された)では、次の行

 Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus);

に変更されました

 Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: false, providerUserKey: null, status: out createStatus);

最新のビットを取得すると、trueに設定されます。なぜfalseに設定されたのかわかりません。

テンプレートが変更されたか、IsApproved 機能が変更された可能性があります。とにかくうまくいきません。

ラルシ

于 2012-08-06T07:39:28.450 に答える