当前位置:首页 > > 充电吧
[导读]ASP.NET 如何:使用 Windows 集成安全性访问 SQL Server如果您的应用程序运行在基于 Windows 的 Intranet 上,则也许可以将 Windows 集成身份验证用于数据

ASP.NET 如何:使用 Windows 集成安全性访问 SQL Server


如果您的应用程序运行在基于 Windows 的 Intranet 上,则也许可以将 Windows 集成身份验证用于数据库访问。集成安全性使用在操作系统线程上建立的当前 Windows 标识来访问 SQL Server 数据库。然后,您可以将 Windows 标识映射到 SQL Server 数据库和权限。

若要使用 Windows 集成身份验证连接到 SQL Server,必须标识是以什么 Windows 标识来运行 ASP.NET 应用程序的。还必须确保已授予该标识访问 SQL Server 数据库的权限。本主题包括显示 ASP.NET 应用程序的当前 Windows 标识的代码示例。

连接到 SQL Server

如果 SQL Server 与 Web 服务器在不同的计算机上,则 Windows 标识必须能够通过网络传递给 SQL Server 的远程实例。(已使用 Kerberos 身份验证正确进行配置的 Windows 网络能够实现此目的。)但是,在 ASP.NET 应用程序的操作系统线程上建立的 Windows 标识也许无法正确地传递给远程 SQL Server,这取决于 identity 配置元素中的设置。

您可以为网站的辅助进程标识提供特定的用户名和密码(如如何:使用映射的 Windows 域用户访问 SQL Server 中所示),也可以模拟 Internet 信息服务 (IIS) 提供的已验证的标识。若要模拟 IIS 提供的 Windows 标识,请将 identity 配置元素的 impersonate 属性设置为 true,如下面的示例所示:

复制代码


在 IIS 中,只有基本身份验证使用通过网络传递给远程 SQL Server 的安全标记来使用户登录。默认情况下,与 identity 配置元素设置一起使用的其他 IIS 安全模式将不会生成可以通过远程 SQL Server 的身份验证的标记。

如果网站配置为仅支持 IIS 中的匿名访问,则从 IIS 传递的安全标记将是 IIS 中配置的匿名访问的 Windows 用户帐户的安全标记。匿名用户帐户可用于通过远程 SQL Server 的身份验证。但是,默认的匿名用户帐户是本地计算机帐户,因而将不会作为远程 SQL Server 上的帐户存在。您可以更改 IIS 匿名帐户以使用域帐户,也可以镜像远程 SQL Server 上的本地计算机帐户(方法为在远程 SQL Server 上创建一个具有相同用户名和密码的本地帐户)。此外,还必须将 IIS6 的 LogonMethod 元数据库属性设置为允许通过网络传递凭据的选项。例如,元数据库设置 MD_LOGON_NETWORK_CLEARTEXT 允许通过网络传递登录凭据。

如果您不确定您的应用程序的 Windows 标识,并且不确定标识是否使用可以通过网络传递的标记登录,可以运行下面的 ASP.NET 页(作为应用程序的一部分)来显示 Windows 标识的名称以及一个指示是否可以通过网络传递标识的值。请注意,下面的示例不考虑是否已经成功地为您的域设置了 Kerberos 委托。

Visual Basic 复制代码

ASP.NET Example

C# 复制代码

ASP.NET Example

下面的过程演示如何在 Intranet 方案中使用 Windows 集成身份验证访问 SQL Server 数据库,而在该方案中,已分别授予每个用户访问 SQL Server 的权限。

开始时,您需要在 IIS 中将应用程序配置为禁用匿名访问并启用 Windows 身份验证。

为 Windows 集成身份验证配置 IIS

在 Windows 中,打开“Internet 信息服务”管理工具。

在 Microsoft Windows 2000 Server 或 Windows Server 2003 操作系统中:在 Windows“开始”菜单中,依次指向“程序”、“管理工具”和“Internet 服务管理器”。

在 Microsoft Windows XP Professional 操作系统中:打开控制面板中的“管理工具”。

打开您的服务器的节点,然后继续打开节点,直到找到您的应用程序的节点(通常在“默认网站”之下)。

右击您的应用程序,再单击“属性”。

在“目录安全性”选项卡上,单击“编辑”。

在“身份验证方法”对话框中,清除“匿名访问”复选框,然后执行下列操作之一:

如果 SQL Server 与 IIS 位于同一台计算机上,选中“集成 Windows 身份验证”复选框。

如果 SQL Server 是远程服务器,选中“基本身份验证”复选框,并清除“集成 Windows 身份验证”复选框。

关闭所有对话框。

在应用程序配置文件 (Web.config) 中,指定应用程序将模拟 IIS 提供的用户凭据。

将 Web.config 配置为模拟 IIS 提供的标识

打开应用程序的 Web.config 文件并向 system.web 元素添加以下内容:

复制代码    


   

Web.config 中的元素区分大小写。

在创建连接字符串以访问 SQL Server 时,必须包含通知 SQL Server 您正在使用集成安全性的属性。

为 Windows 集成安全性配置连接字符串

在 SQL Server 的任何连接字符串中,包含属性 Trusted_Connection=Yes 并移除用户名和密码属性。

下面显示的是一个为 Windows 集成安全性配置的典型连接字符串:

复制代码    

"workstation id=WebServer1;packet size=4096;
Trusted_Connection=Yes;data source=SQLServer01";
persist security info=False;initial catalog=northwind"

   

将 SQL Server 设置为可以识别将访问它的用户。

为 Windows 集成安全性配置 SQL Server

从 Windows 的“开始”菜单中,选择“Microsoft SQL Server”,然后选择“企业管理器”。

打开服务器的节点,并展开希望将其权限授予用户的数据库的节点。

右击“用户”节点,选择“新建数据库用户”。

在“数据库用户属性”对话框中,在“登录名”框中输入/用户名,然后单击“确定”。另外,将 SQL Server 配置为允许所有域用户访问数据库。

注意
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭