我正在尝试使用 Windows 身份令牌连接到 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 中变得区分大小写,但我没有提供任何密码。