0

私は単純なログイン機能を持っています:

    private bool AdminIsValid(string username, string password)
    {
        bool isValid = false;
        using (var db = new AdminEntities())
        {

            var admin = db.users.FirstOrDefault(u => u.password.Trim() == password);

            if (admin != null)
            {
                if (admin.uname.Trim() == username)
                {
                    isValid = true;
                }
            }
        }
        return isValid;
    }

私はこのように使用します:

    protected void LoginButton_Click(object sender, EventArgs e)
    {            
        if (AdminIsValid(LoginUser.UserName, LoginUser.Password))
            {
                FormsAuthentication.SetAuthCookie(LoginUser.UserName, false);
                Response.Redirect("../");
            }
            else
            {
               //"Log in data failed"
            }           
    }

ログインが成功した場合にのみ機能し、失敗すると次のエラーが発生します。

ユーザー インスタンスのプロセスの開始に失敗したため、SQL Server のユーザー インスタンスを生成できませんでした。接続が閉じられます。

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

4

2 に答える 2

2

User Instance=True接続文字列にある場合は、それを削除してください。また、複数のユーザーが同じパスワードを持つ可能性があるため、ユーザー名とパスワードを一緒に比較する必要があります。次のようにメソッドを変更できます。

private bool AdminIsValid(string username, string password)
{
    using (var db = new AdminEntities())
    {
       return db.users.Any(u => u.password.Trim() == password &&
                                u.uname.Trim() == username);
    }
}
于 2013-10-22T19:58:29.230 に答える