Top / .NET備忘録 / 10.oo4o / 15.ChangePassword

OraSession オブジェクトの ChangePassword メソッドを実装するために、OracleConnection オブジェクトの OpenWithNewPassword メソッドを使ってみました。

    public void ChangePassword(string dbname, string username, string oldpassword, string newpassword)
    {
        using (OracleConnection con = new OracleConnection())
        {
            StringBuilder sb = new StringBuilder();
 
            sb.Append("Data Source=" + dbname);
            sb.Append(";User ID=" + username);
            sb.Append(";Password=" + oldpassword);
            sb.Append(";Pooling=FALSE;"); 
            con.ConnectionString = sb.ToString(); 
 
            con.OpenWithNewPassword(newpassword);
        }
    }

こんな感じで使うわけですが・・・

    Dim session As New OraSessionClass
    Dim database As OraDatabase = Nothing
    Try
        Console.WriteLine("旧パスワードでログイン")
        database = session.OpenDatabase(HostName, userName & "/" & passWord, ORADB_DEFAULT)
    Catch ex As Exception
        If session.LastServerErr = 28001 Then
            Console.WriteLine("パスワード期限切れ。パスワード変更")
            session.ChangePassword(HostName, userName, passWord, newPassWord)
            Console.WriteLine("新パスワードでログイン")
            database = session.OpenDatabase(HostName, userName & "/" & newPassWord, ORADB_DEFAULT)
            Console.WriteLine("成功")
        Else
            Console.WriteLine(session.LastServerErrText)
        End If
    End Try

なぜか x64 環境で動作しません。

なにか方法はないものか・・・




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-08-01 (木) 01:49:32 (1476d)