我在XP Pro OS上完成了在VS 2008中创建C#/ SQL Web应用程序。它成功构建和执行。使用相同的代码,我在VS 2008中开发了一个网站。虽然这个网站构建和执行成功,但当我从我的计算机部署它时,它不会显示数据网格。我认为这是因为互联网用户无法访问我的SQL数据库。
所以我读到了配置SQL安全性,可信帐户和假冒等等。但我仍然没有真正妥善处理这一切。我已尝试使用IIS网站属性中指定的客户用户登录进行匿名访问,以及禁用匿名访问。我使用同一台计算机来托管网站(IIS),存储SQL Server和数据库,以及存储VS 2008.
现在我的目标是让这个网站从互联网上运作。它解析为当前页面,除了此gridview之外,所有内容都会显示,允许用户从我的Adventureworks数据库中选择要附加到哪个表。我注意到,IIS6管理器窗口中出现的图像与Internet上显示的图像相同。我使用的是Integrated而不是Windows帐户。我正在使用IIS 5.1和默认的aspnet_wp.exe进程。
您可以在网址查看:
您建议我使用哪种类型的身份验证和用户访问权限,以便为互联网用户提供最少但足够的访问权限,以便将新数据附加到我数据库中的现有表格中?你有什么URL可以推荐给我看看这个吗?我用谷歌搜索并阅读了很多URL,但我没有找到许多有用的XP操作系统。
另外,我的web.config文件中有以下连接字符串:
<add name="***" connectionString="Data Source=.;AttachDbFilename="C:\Program Files\Microsoft SQL Server\***\DATA\AdventureWorks_Data.mdf";Integrated Security=True;Connect Timeout=30;User Instance=False"
providerName="System.Data.SqlClient" />
这是正确的还是需要“用户ID”和“密码”?现在我有身份验证模式= Windows。这应该是表格还是别的什么?
我现在摆脱了事件管理器的失败审核错误。但是,GridView仍然不会显示在上面的URL上。现在我使用IUSR_作为我的匿名用户访问名称。这是正确的帐户吗?
GridView现在在IIS6管理器中显示,但不在此URL中显示。由于我不再在事件管理器中收到错误,如何诊断缺少GridView的原因?另外,为什么这个网站需要很长时间才能在我的网站URL上完成加载,但是从IIS管理器查看它只需要一秒钟?
答案 0 :(得分:2)
使用集成安全性意味着与SQL Server的连接是由运行请求进程的用户标识创建的。在这种情况下,它是IIS运行的用户。
它适用于VS 2008,因为您正在使用“调试”服务器,因此它正在为您进行连接。当您发布到IIS时,它将作为非特权系统帐户运行 - 或者应该是。
最简单的解决方案是关闭集成安全性并创建可以使用SQL Server身份验证连接到数据库的用户。备用解决方案是确定IIS正在运行的Windows用户ID,并允许该用户以尽可能少的权限连接到数据库。
除非您正在进行模拟,否则“身份验证模式”问题与连接到SQL Server无关。模拟允许IIS进程/工作线程作为发出Web请求的用户运行。既然你没有模仿,那就没什么了。
答案 1 :(得分:1)
当我试图掌握这些概念时,我记住,不是Web应用程序的用户连接数据库,而是在IIS下运行的Web应用程序的过程。 / p>
当用户对网络应用进行身份验证时,只表示应用了解用户是谁。
当用户执行需要数据库访问的操作时,IIS进程连接到数据库,它可以作为ASPNET用户连接,也可以要求它模拟其他帐户。
我个人更喜欢创建一个专门用于连接数据库任务的用户帐户,然后将IIS设置为模拟此帐户。我认为这比给ASPNET用户访问数据库更好。