2011-01-16 22 views
1

FormsAuthenticationとFormsAuthenticationTicketを使用してログインするまで、私の "Register"ページが正常に動作していました。 :このエラーメッセージユーザー ''のログインに失敗しました。 - ASP.NET MVC FormsAuthentication

System.Data.SqlClient.SqlExceptionと

今すぐ登録上、電子メールがすでにデータベースに存在するかどうかをチェックするとき、それは失敗し、この行の

if (Global.DC.Users.Where(x=>x.Email == Email).Count() > 0) 
    return "The email address already exists in the database"; 

ユーザー ''のログインに失敗しました。

これを解決する方法を知っている人はいますか?前もって感謝します。

答えて

3

SQLログインが無効であるように見えます。私はあなたの接続文字列がそれが変更されているかどうかを確認し、そうでなければ、SQLログインとデータベースユーザーが正しく設定されていることを確認します。

通常、特定の接続文字列を使用して明示的にテストした場合や、デフォルトのコンストラクタ(new ....DataContext())を使用して作成した場合、DataContextの呼び出し方法を変更すると、既定のコンストラクタを使用すると、通常構成ファイルに参照する接続文字列名を格納するSettings.settingsプロジェクト項目で構成されたデザイン時接続文字列が使用されます。あなたはまだそれを同じ方法と呼んでいますか?

あなたのDataContextは、Globalクラスで電話しています。これは一般的に悪いデザインと見なされ、あなたは本当にあなたがそれで終わった後、あなたのコンテキストをインスタンス化し、解放し、例えば、データアクセスのユニット・オブ・work`アプローチを使用して検討する必要があります。

using (var context = new DataContext()) { 
    // Do work here. 
} 

別速いものは、Countの代わりにCountの代わりにAnyを使用する方が効率的です。その結果、列挙できる列挙体全体が列挙され、Anyが最初の有効なインスタンスでなくなります。

+0

あなたは正しく接続文字列です!それとあなたのアドバイスに感謝します! :) – Aximili

関連する問題