Windows Identity Tokenを使用してOracleデータベースに接続しようとしていますが、昨日は機能しましたが、今日は機能せず、理由がわかりません。
これは私のコードです:
string ssoConnectionString;
var user = CreateSSOConnectionString(connectionStringBuilder, out ssoConnectionString);
oracleConnectionStringBuilder = new OracleConnectionStringBuilder
{
UserID = user.Identity.Name,
ConnectionString = ssoConnectionString
};
private WindowsPrincipal CreateSSOConnectionString(IConnectionStringBuilder connectionStringBuilder, out string ssoConnectionString)
{
var user = new WindowsPrincipal(WindowsIdentity.GetCurrent());
ssoConnectionString = ConfigurationManager.AppSettings["SSOConnectionString"];
ssoConnectionString = string.Format(ssoConnectionString, connectionStringBuilder.Host);
return user;
}
Connection = new Oracle.DataAccess.Client.OracleConnection();
Connection.ConnectionString = oracleConnectionString.ConnectionString;
Connection.Open(); //Fails on this line
コードは正確にはこのようには見えませんが、それは不可欠です。
SSO ConnectionStringはapp.configにあり、次のようになります。
<add key="SSOConnectionString" value="DATA SOURCE={0};User Id=/;" />
Oracle自身がそれを行う方法を説明する方法を示すリンクは次のとおりです。http://docs.oracle.com/cd/E11882_01/win.112/e18754/featConnecting.htm#i1006432
これは私が受け取るエラーメッセージです:
ORA-1017: invalid username/password; logon denied
ブレークポイントで確認しましたが、すべて問題ないようです。また、このエラーについて多くのことを検索しました。ほとんどの人は、Oracleバージョン11gでパスワードが大文字と小文字を区別するようになったためだと言いますが、パスワードは提供していません。