Windows 用户名未传递给 Oracle 数据库?
Windows username not being passed to Oracle DB?
我正在使用 Oracle ManagedDataAccess 驱动程序从 .NET Web 应用程序访问数据库。当 运行 它在 IIS Express 本地作为 windows 用户 x 工作正常,但是当我使用 IIS 将我的站点发布到另一台服务器时,出现错误
ORA-01017: 无效 username/password;登录被拒绝
我按照 here 所述查看了从 Oracle 尝试登录的情况。在从 IIS 成功登录的地方,我可以看到列出了我的 windows 用户名,OPS$(USERNAME)。
有趣的是,在登录失败的情况下,我从 IIS 看到传递了错误的用户名 - Username = OPS$(NAME_OF_MY_WEB_APPLICATION)。我不知道将应用程序名称替换为用户名的想法是从哪里来的。
我的连接字符串对于两种环境都是相同的:
用户ID=/;数据源=(描述=(地址=(协议=TCP))(主机=...(端口=1521)(CONNECT_DATA=(SERVICE_NAME=...)));
原来在 IIS 中禁用了模拟,添加
<identity impersonate="true" />
我的 web.config 解决了这个问题。我的 Oracle 驱动程序使用的应用程序池用户名称与我的 Web 应用程序相同。
我正在使用 Oracle ManagedDataAccess 驱动程序从 .NET Web 应用程序访问数据库。当 运行 它在 IIS Express 本地作为 windows 用户 x 工作正常,但是当我使用 IIS 将我的站点发布到另一台服务器时,出现错误
ORA-01017: 无效 username/password;登录被拒绝
我按照 here 所述查看了从 Oracle 尝试登录的情况。在从 IIS 成功登录的地方,我可以看到列出了我的 windows 用户名,OPS$(USERNAME)。
有趣的是,在登录失败的情况下,我从 IIS 看到传递了错误的用户名 - Username = OPS$(NAME_OF_MY_WEB_APPLICATION)。我不知道将应用程序名称替换为用户名的想法是从哪里来的。
我的连接字符串对于两种环境都是相同的: 用户ID=/;数据源=(描述=(地址=(协议=TCP))(主机=...(端口=1521)(CONNECT_DATA=(SERVICE_NAME=...)));
原来在 IIS 中禁用了模拟,添加
<identity impersonate="true" />
我的 web.config 解决了这个问题。我的 Oracle 驱动程序使用的应用程序池用户名称与我的 Web 应用程序相同。