2

私は本当にばかげた問題を抱えていますが、1週間経ちましたが、先に進むことができません. 認証によって保護されている小さなアプリがあります。すべてがローカルで機能し、ログインできます。リモートマシンではログインできません。ログインが認識されていないことがわかります。今、私はそれがdb接続などであると思ったので、asp_usersテーブルをリストする小さなテストページを作成し、ユーザーに変更を加えることで、ローカルとリモートの両方がその接続を介して同じテーブルを見ていることがわかります。ユーザー認証が機能しない理由は私を超えて。

明確にするために、それはasp.netアプリとフォーム認証であり、db接続は、作成したasp_usersテーブルをリストするテストページに基づいて機能しています。

実際にはエラーは報告されず、「ログイン試行は成功しませんでした。もう一度やり直してください。それは本当に単純なものに違いないのですが、私は今それを見ることができないほどイライラしているので、助けを求めています. ヘルプ !:)

わかりましたので、web.config の一部を投稿しようとしましたが、表示されません。これは、接続文字列とメンバーシップおよびロール セクション (プロファイルなし) を備えた非常に基本的な構成です。質問は、これについてどうするか、何をチェックするかということです。

建設的なコメントをお寄せいただきありがとうございます。

ゼリコ

4

4 に答える 4

1

ログインできても、サイトが選択時に「Remember Me」を拒否するという点で、やや似たような状況がありました。つまり、メンバーシップ プロバイダーとロール プロバイダーの両方が同じリソースを指していることを確認することになりました。ええ、それは「ドッ!」でした。私にとっての瞬間。:)

リモート サーバーで SQLExpress を使用しようとしていますか、それとも完全な SQLServer インスタンスを指していますか? 私の経験では、ほとんどの共有ホスティング環境は App_Data フォルダーで .MDF を使用できるように設定されていません。とにかく、これを知っていれば正しい方向に進むことができます。

以下にいくつか試してみます。

  1. ログイン ID がロックアウトされていないことを確認してください。それは本当にそれと同じくらい簡単かもしれません

  2. ログインページを含むフォルダーにセキュリティトリミングがないことを確認してください

  3. web.config ファイルで適切なプロバイダー設定を確認し、次のことを確認します。

    • すべてのプロバイダーで、「アプリケーション」属性に同じ値を指定する必要があります

    • すべてのプロバイダーは、同じ接続文字列とプロバイダーの「セット」を使用する必要があります

      • おそらく、これはSqlMembershipProviderSqlRoleProviderを使用することを意味します
      • v3.5 アプリでない場合は、System.Web.Security への参照を追加する必要がある場合があります。それが実際に必要な名前空間です
    • サイトで SQLExpress を使用できることが確実な場合は、AspNetMembershipProviderAspNetRoleProviderでこれを試してください。

チッ!

于 2009-03-04T13:46:37.207 に答える
0

使用している認証の種類は明確ではありませんが、Windows 認証の場合は、ログインしているユーザーをローカル マシンから読み取っていて、そのユーザーがリモートに存在しない可能性があります。

フォーム認証を正しく実装している場合は、データベース接続の問題である可能性があるため、トラブルシューティングを開始する必要があります..

  • おそらく、SQL Management Studio からリモート マシンのデータベースへの接続を試みることから始めます (web.config の接続情報を使用)。
于 2009-03-03T20:59:50.250 に答える