Pro*_*ofK 11 database asp.net-mvc impersonation asp.net-mvc-4
当我尝试访问我新部署的(到lcoal IIS 7.5)MVC4应用程序时,我收到错误:
用户'DOMAIN\MACHINE-NAME $'登录失败
其中附加'$'而不是机器名称的一部分.
web.config中的连接字符串如下所示:
<add name="ComairRIEntities"
connectionString="metadata=res://*/Data.ComairRI.csdl|res://*/Data.ComairRI.ssdl|res://*/Data.ComairRI.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=MyDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
Alo*_*atz 10
这是正在发生的事情:
在您的连接字符串中,您具有以下设置:integrated security = True 这意味着SQL Server连接将使用启动连接的进程的凭据进行身份验证.由于您在IIS下运行并且IIS使用应用程序池,因此将使用运行应用程序池的Windows用户对连接进行身份验证.默认情况下,这是一个几乎没有名为NetworkService的权限的用户.NetworkService(或者在IIS7.5中它是另一个)将永远不会拥有对您的数据库的访问权限.您的特定方案的细微差别可能会有所不同,因为IIS中存在大量不同的安全继承,并且您的进程可能会结束一堆不同的用户,但是,基本问题是您已经集成了security = True和用户IIS进程正在运行,是一个几乎没有权限的标准用户.
要修复你有几个选择:
如果您需要有关#2的更多帮助,您必须提供以下信息:
| 归档时间: |
|
| 查看次数: |
4775 次 |
| 最近记录: |