2012-08-03 3 views
0

Windows ID 토큰을 사용하여 Oracle 데이터베이스에 연결하려고합니다. 어제 작동했지만 어제 작동하지 않습니다. 이유는 알지 못합니다.Oracle 데이터베이스에 대한 Windows 인증

이 내 코드입니다 :

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에 위치한 보인다 :이 오류 메시지입니다 http://docs.oracle.com/cd/E11882_01/win.112/e18754/featConnecting.htm#i1006432

:

여기
<add key="SSOConnectionString" value="DATA SOURCE={0};User Id=/;" /> 

오라클 그 자아가 그것을하는 방법을 설명하는 방법을 보여주는 링크입니다 내가 얻은 :

ORA-1017: invalid username/password; logon denied 

나는 모든 것이 잘 보였다. 또한이 오류에 대해 많은 정보를 찾았으며 대부분의 사람들은 오라클 버전 11g에서 암호가 대소 문자를 구분하므로 암호를 제공하지 않는다고 말합니다.

+0

사용자가 비활성화되었거나 로그온 할 권한이없는 것으로 보입니다 – Alex

+0

"Oracle 버전 11g에서 비밀번호가 대소 문자를 구분하므로 비밀번호가 제공되지 않습니다"- ** 이것이 귀하의 사유입니다. 잘못된 사용자 이름/암호 오류가 발생했습니다. ** –

+0

Windows Identity로 로그온하려는 경우 제공 할 필요가없는 모든 사항이 ... – furier

답변

1

실제로이 오류의 원인은 Oracle.DataAccess.dll 버전과 내 시스템에 설치된 Oracle 클라이언트 사이의 불일치입니다.

그래서 오류는 실제로 구성 파일의 코드 또는 연결 문자열과 관련이 없습니다.

명령 창에 "sqlplus"를 작성하여 Oracle 클라이언트 버전을 확인하고 Oracle.DataAccess.dll 버전과 대상 .NET 프레임 워크 버전이 일치하는지 확인하십시오.

관련 문제