流水的个人博客网络学院作者家园流水日志 使用SSPI信任连接来链接sql数据库

1  /  1  页   1 跳转 查看:2238

使用SSPI信任连接来链接sql数据库

使用SSPI信任连接来链接sql数据库

Access好像不支持“integraged  security”。只有大型数据库如SQL  Server等等才支持。 
   
   
  integraged  Security=SSPI;//表示你的连接安全验证方式,可用trusted_connection=yes取代 
  Initial  catalog=filmmannger;//表示你进入SQL服务器的数据库,可用database=filmmannger取代 
  第三个一般的我们都采用默认的,没有用到,是关于保存安全信息之类的,一般不用设置

SSPI表示使用信任连接,  如果你需要用信任连接来进入数据库,首先数据库中必须要添加有对应的用户.

问题: 语句c; 
  出现一下错误 
  System.Data.SqlClient.SqlException:  用户  '(null)'  登录失败。原因:  未与信任  SQL  Server  连接相关联。

这是sql数据库常见的问题``你要在数据库的安全性里添加ASPNET登陆,然后在你的库里的用户中添加此用户


问: 我已经添加了ASPNET用户到数据库,可问题依然

我想楼主你的SQL  server2000安装的时候选择的是Sql  server身份验证,而不是windows身份验证,所以只能通过用户名和密码来连接了。

使用SSPI信任连接来链接sql数据库实践总结待续:
 

回复:使用SSPI信任连接来链接sql数据库

操作系统win2003 数据库 SQL2000 开发.NET ASP

运行的时候提示 “用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败”

在网上搜到的大多数的解决方案都是:

第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中
我的电脑→右键→管理→本地用户和组
选择“组”→双击Administrators→单击“添加”→单击“高级”→单击“立即查找”→在下面的列表中选择Network Service用户→两次单击“确定”→加入。
第二步:在企业管理器中加入NetWork Service用户
打开Sql Server企业管理器→选择数据库实例→打开“安全性”节点→选择“登录”→在右边的列表中单击右键→选择“新建登录”→在“常规”选项卡中单击“名称”旁边的按钮“...”→选择“Administrators”组→单击下面的“成员”按钮→选择“Network Service”→单击“添加”按钮→单击“确定”,返回“新建登录”对话框→保证身份验证类型为“windows验证”和“允许访问”→单击“确定”→关闭“企业管理器”
第三步:重新运行asp.net程序,数据库连接字符串选择windows验证即可。 可惜这样的方案是不对的 因为我根本找不到Network Service用户 添加不到ADMINISTRATOR后来在一个很生僻的论坛里找到一个帖子,按照这个方法做就成功了:SQL里添加新登陆,浏览选择IIS_WPG ,点击成员中选NT AUTHORITY\NETWORK SERVICE点确定,然后可以选择需要访问的数据库,选择db_owner从新运行程序,就看到很可爱的数据表格了
 

回复:使用SSPI信任连接来链接sql数据库

“机器名\ASPNET”登录失败 ASPNET是默认的访问用户,由于在数据库中没有相应的登录权限,所以不能正常访问数据库。 有多种方案可以解决,这里列出两种:

在“web.config”文件节中加入"<identity impersonate="true"/>"即可;
在数据库中添加相应的ASPNET用户,并注意选择合适的角色或权限。


“机器名\IUSER_域名”登录失败 这是ASPNET应用程序使用匿名用户进行访问,同样是由于该用户没有访问权限导致的。 可以直接在IIS中修正:找到相应的应用程序----选择“目录安全性”页面----点击“匿名访问和身份验证控制”右边的“编辑”按钮-----去掉“匿名访问”选中,同时选中“windows集成验证”
选用
 

回复:使用SSPI信任连接来链接sql数据库

前两天在VS2005下做个项目,用里面集成的Web服务调试没问题,但当把该项目在IIS下配置后,用浏览器浏览结果则不正确,这个问题郁闷了一天,后来我想不出招就让我同事调试了一下,他在Web.config中加了一句话:“<identity impersonate="true"  userName="操作系统用户" password="用户密码"/>”,浏览…,结果正确,后来我就在网上查了下这句话的作用,MSDN是这样说的:
1、模拟 IIS 验证的帐户或用户
若要在收到 ASP.NET 应用程序中每个页的每个请求时模拟 Microsoft Internet 信息服务 (IIS) 身份验证用户,必须在此应用程序的 Web.config 文件中包含 <identity> 标记,并将 impersonate 属性设置为 true

2、为 ASP.NET 应用程序的所有请求模拟特定用户
  若要为 ASP.NET 应用程序的所有页面上的所有请求模拟特定用户,可以在该应用程序的 Web.config 文件的 <identity> 标记中指定 userName 和 password 属性。例如:
<identity impersonate="true" userName="accountname" password="password" />


下面介绍ASP.NET应用程序中使用身份模拟的一个简单应用。例如有一个ASP.NET应用程序要检查服务器端某个文件是否存在,相应的程序代码为:
bool a = File.Exists("D:\\Share\\test.txt");

缺省情况下该ASP.NET应用程序以ASPNET帐号运行。为了安全起见,ASPNET这个帐号并没有服务器端D:\Share\这个目录的访问权限。在不使用身份模拟的情况下,由于ASP.NET应用程序不具有访问该目录的权限,无论文件是否存在,File.Exists的返回值将永远是false。为了解决这个问题,可以另建一个用户帐号:FileExist,并赋予该帐号D:\Share\目录的访问权限。然后在该应用程序的Web.config文件的<identity>标记中指定具体的用户帐号:
<identity impersonate="true" userName="FileExist" password="password" />

来执行该程序。

在ASP.NET应用程序中使用身份模拟一般用于资源访问控制,主要有如下几种方法:
模拟IIS认证帐号
在某个ASP.NET应用程序中模拟指定的用户帐号
在代码中模拟IIS认证帐号
在代码中模拟指定的用户帐号

--------------------------------------------------------------------------------

模拟IIS认证帐号
这是最简单的一种方法,使用经过IIS认证的帐号执行应用程序。您需要在Web.config文件中添加<identity>标记,并将impersonate属性设置为true:
<identity impersonate="true" />

在这种情况下,用户身份的认证交给IIS来进行。当允许匿名登录时,IIS将一个匿名登录使用的标识(缺省情况下是IUSR_MACHINENAME)交给ASP.NET应用程序。当不允许匿名登录时,IIS将认证过的身份标识传递给ASP.NET应用程序。ASP.NET的具体访问权限由该账号的权限决定。

--------------------------------------------------------------------------------

模拟指定的用户帐号
当ASP.NET应用程序需要以某个特定的用户帐号执行,可以在Web.config文件的<identity>标记中指定具体的用户帐号:
<identity impersonate="true" userName="accountname" password="password" />

这时该ASP.NET应用程序的所有页面的所有请求都将以指定的用户帐号权限执行。

--------------------------------------------------------------------------------
 
1  /  1  页   1 跳转

版权所有 流水日志  希望网络 流水 YPState 理想论坛 8671  Sitemap

Powered by Discuz!NT 2.0.1214    Copyright © 2012 论坛网址.
Processed in 0.015625 second(s) , 3 queries.
返顶部