Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 成员资格提供程序产生意外的SQL错误_Asp.net_Impersonation_Sqlmembershipprovider - Fatal编程技术网

Asp.net 成员资格提供程序产生意外的SQL错误

Asp.net 成员资格提供程序产生意外的SQL错误,asp.net,impersonation,sqlmembershipprovider,Asp.net,Impersonation,Sqlmembershipprovider,在特定页面上调用Membership.GetUser()时,我遇到以下错误(当我们实现适当的安全控制时,在站点上第一个这样做的页面) System.Data.SqlClient.SqlException(0x80131904):用户“IIS APPPOOL\UAT站点”登录失败。在 .... 位于System.Web.Security.SqlMembershipProvider.GetUser(字符串用户名,布尔userIsOnline)处的System.Web.Security.Members

在特定页面上调用Membership.GetUser()时,我遇到以下错误(当我们实现适当的安全控制时,在站点上第一个这样做的页面)

System.Data.SqlClient.SqlException(0x80131904):用户“IIS APPPOOL\UAT站点”登录失败。在 .... 位于System.Web.Security.SqlMembershipProvider.GetUser(字符串用户名,布尔userIsOnline)处的System.Web.Security.Membership.GetUser(字符串用户名,布尔userIsOnline)

该站点在IIS Express下运行良好,但在2008R2上UAT在IIS 7.5下运行

Web.Config

<authentication mode="Windows" />
    <identity impersonate="True" />
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DatabaseGTN" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="GTN" />
      </providers>
    </membership>
    <roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DatabaseGTN" applicationName="GTN" />
      </providers>
    </roleManager>

在站点的“身份验证”节点下,仅启用ASP.NET模拟和Windows身份验证 Web服务器Windows身份验证功能是根据服务器管理器安装的

使用相同的连接字符串引用,站点上的所有其他页面都运行得非常愉快,并且审核日志表明MS SQL中的SYSTEM_用户返回了正确的用户名COMPANY\MyName,因此看起来每个其他SQL请求都在按预期模拟

如果您对我可能忽略的配置选项有任何建议,我们将不胜感激

我应该说得更清楚。 我不想添加额外的DB用户或角色,而是想让模拟正常工作。
或者我想告诉我的老板为什么不能这样做。

看到你的错误,我能想到的唯一一件事就是确保你的数据库可以访问“IIS应用池\UAT站点”

要检查这一点,只需打开SQLServer管理控制台并查看安全节点中是否有此用户


而不是在该用户的权限中,在“用户映射”下查看数据库的授权是否正确。

谢谢。但这与我想允许的恰恰相反。只有属于特定用户组的用户才允许访问数据库。它可以很好地用于数千个其他DB调用,只是不适用于成员资格提供商正在执行的调用。