IIS7.5 MS Access身份验证

时间:2012-03-08 12:13:37

标签: ms-access authentication iis-7.5

我有两个网站的IIS7.5,我的网络服务器上有一个Access数据库。

第一个网站使用特定网络帐户进行匿名身份验证(假设为'jim.smith')。

第二个网站已启用Windows身份验证。

我已经写了一些ASP来使用与Access数据库的DSN-Less连接,我在两个网站都使用相同的代码。

使用与第一个网站匿名设置('jim.smith')相同的网络帐户登录到计算机时 - 在浏览器中查看时,第一个网站可以访问数据库,第二个网站没有。

错误消息是:80004005 Microsoft Jet数据库引擎无法打开文件“...”。它已由其他用户专门打开,或者您需要获得查看其数据的权限。

绝对不会被其他用户打开。

因此网络用户'jim.smith'通过匿名设置访问第一个网站。

网络用户'jim.smith'通过windows auth。

访问第二个网站

为什么访问数据库的工作是从网站一,而不是网站二??

有谁知道如何使Windows auth工作与匿名设置相同,所以我可以从网站2访问数据库..?

干杯!

史蒂夫

编辑:每个人都拥有数据库所在文件夹的完全权限。

1 个答案:

答案 0 :(得分:0)

在我看来,您需要启用模拟,以便传入的用户可以访问数据库。否则,将使用应用程序池的用户,这通常在服务器本身上没有权限(应用程序池标识)                                 

在服务器上的IIS上使用“集成管道”时,如果您的应用程序不依赖于在“BeginRequest”和“AuthenticateRequest”阶段模拟请求用户(在集成模式下无法模拟的唯一阶段) ,但仍然需要在应用程序的其他区域进行模拟,通过将以下内容添加到应用程序的web.config中来忽略此错误(500 - 内部服务器错误)

<system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
</system.webServer>

请参阅: http://allen-conway-dotnet.blogspot.com/2010/11/how-to-use-impersonation-in-aspnet.html

相关问题