0

ASP.NET 2.0 ログイン コントロールで問題が発生しています。

  • aspI.net regsql ツールを使用してデータベースをセットアップしました。
  • アプリケーション名を確認しました。「/」に設定されています。

アプリケーションは SQL Server にアクセスできます。実際、パスワードを取得しようとすると、パスワードも送信されます。それにもかかわらず、ログイン コントロールは引き続きログインを拒否します。

これをに追加しましたweb.config

<membership defaultProvider="AspNetSqlProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>

そして、接続文字列に次を追加しました。

 <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=IDC-4\EXCALIBUR;Initial Catalog=allied_nr;Integrated Security=True;Asynchronous Processing=True"/>

(「名前の削除」とは、App_Data ディレクトリの既定の接続文字列を削除することです。)

ログイン コントロールがユーザーを認証しないのはなぜですか?

4

2 に答える 2

1

パスワードをプレーン テキストで保存しているように聞こえますが、SqlMembershipProvider のデフォルトのパスワード保存形式は「ハッシュ」です。ユーザーのパスワードがハッシュ化されて格納されている場合、データベースからユーザーのパスワードを取得することはできません。

于 2010-04-16T19:44:13.690 に答える
0

メンバーシップ プロバイダーに関する優れた一連の記事が、4 Guys From Rolla サイトに書かれています。参考になると思いますのでチェックしてみてください!

http://www.4guysfromrolla.com/articles/120705-1.aspx

シリーズのパート 4 から:

「メンバーシップ システムでは、ユーザーの資格情報が無効になるシナリオが複数あります。

  • 指定されたユーザー名がメンバーシップ ディレクトリに存在しない可能性があります
  • ユーザー名は存在する可能性がありますが、指定されたパスワードが正しくない可能性があります
  • ユーザー名とパスワードは正しいかもしれませんが、次のようになります。
    • ユーザーがまだ承認されていない可能性があります
    • ユーザーがロックアウトされている可能性があります。これは、ユーザーが指定された試行回数 (デフォルトでは 5 回) の間、無効なパスワードでログインを試みた場合に発生する可能性があります。

残念ながら、認証情報が無効な場合、ValidateUser(userName, password) メソッドは False を返すだけであり、認証情報が無効である正確な理由に関する情報は含まれていません。」

于 2010-04-16T20:25:41.297 に答える