我正在为我的公司创建一个ASP.NET应用程序。
在Visual Studio中,我使用EntityFramework通过edmx文件连接到我的SQL Server数据库。该应用程序使用Windows身份验证连接到网站和SQL Server。
当我在本地运行应用程序时,一切都运行良好。 Windows身份验证有效,因此我的应用程序知道我是谁,然后它正确连接到SQL Server并显示数据。
但是当我尝试在我的IIS服务器上部署它时,我收到以下错误:
用户'DOMAIN \ SERVERNAME $'登录失败。
Windows身份验证非常适合识别我在应用程序中的身份,但用于连接到SQL Server的集成安全性使用的是服务器身份而不是应用程序用户的身份。
您可能想知道的事情:
我正在使用连接字符串:
<connectionStrings>
<add name="DatabaseEntities" connectionString="metadata=res://*/Models.DatabaseModel.csdl|res://*/Models.DatabaseModel.ssdl|res://*/Models.DatabaseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SQLSERVERNAME\INSTANCE;initial catalog=Database;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
是否可以对ASP.NET应用程序和SQL Server使用相同的Windows身份验证?
答案 0 :(得分:0)
您应该将域用户添加到SQL-server登录 - look here
或者从连接字符串中删除集成安全选项,并添加sql server user的用户ID和密码:
<add name="DbConnectionString" connectionString="Data Source=SERVER;Initial Catalog=db;User Id=sqlusername;Password=sqluserpass;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/>
请注意,exampled连接字符串不包含模型优先方法的元数据
答案 1 :(得分:0)