在 Outlook 2007 中分发电子名片

更新时间: 2009年4月

应用到: Office Resource Kit

 

上一次修改主题: 2015-03-09

使用 Microsoft Office Outlook 2007 电子名片,Outlook 用户可以附加以图形方式显示的联系信息,包括姓名、地址和徽标,就像传统名片一样。例如,这些信息可在联系人项目中显示,或用作电子邮件签名的一部分。您可以提供名片模板,以方便组织机构内部的人员使用标准的名片。该模板使用统一的设计和配色方案,可以包含公司的徽标、传真号码等等。

电子名片可以进行自定义,并通过内部网站供员工下载。组织机构成员从网站下载电子名片时,您可以提供代码以自动自定义名片,在提供组织机构标准内容的同时包含员工的联系信息。也可以让员工在下载标准模板后填写自己的信息。

使用用户数据对卡片进行个性化设置

本主题包含两个提供自动填充名片的详细示例:一个 Microsoft Office SharePoint Server 2007 解决方案和一个 .NET 解决方案。同时提供了下载每个解决方案的示例代码的链接,您可以自定义这些示例代码(请参阅本主题下文中的获得电子名片分发示例解决方案一节)。

用于向名片添加员工联系信息的选项

为用户提供标准电子名片的示例选项包括:

  • 以电子邮件附件的形式向员工发送名片模板。

  • 在网络文件夹中提供名片模板,以便员工浏览,然后保存到本地。

  • 在内部 Office SharePoint Server 2007 网站上设置分发页面。

  • 在内部网站上提供自定义 .NET 解决方案。

前两个选项要求员工使用他们的联系信息对名片做个性化设置。SharePoint 和 .NET 选项可在名片中自动填充员工的个人信息。

Note注意
可作为电子邮件附件发送模板或在网络文件夹中提供模板,这种方法可简便地提供电子名片,但有一定限制。名片不会自动完成个性化设置;每个员工必须在本地编辑名片,添加他或她的联系信息。
  • **作为电子邮件附件附加电子名片模板。**使用此方法,您可以向员工发送电子邮件 — 可以区分各个部门或面向整个组织机构,可在其中包括说明并以 vCard 附件的形式提供组织的电子名片模板。如果您提供多种名片设计,可以在电子邮件正文中嵌入每个模板的预览图像。员工可以选择保存最好的或最合适的设计。

  • **在网络文件夹上提供电子名片模板。**在部门或组织机构员工可以访问的公用文件夹上提供模板和相关说明是另一种分发电子名片的方法。如果组织机构中的小组采用不同品牌设计,您可以创建多个共享文件夹,以便为不同的部门提供不同的名片。通过将共享文件夹的权限限制到具体部门或组织机构的成员,您可以确保员工只能访问适合他们在组织机构中的角色的模板。

尽管与向员工分发模板并由他们自己完成个性化设置相比,要求更多的设置工作,但提供能在名片中自动填充员工联系信息的解决方案有许多优点。

使用自动完成名片个性化设置的解决方案的一个重要的好处是,员工不需要编辑名片本身。这将节省时间并减少出现排印错误以及其他错误的可能性。另外,因为是自动填充员工数据,所以创建或更新名片时不太可能为员工的名片创建重复的联系人条目。

检测到重复的联系人

另一个好处是,集中更改名片便于分发。例如,如果公司的徽标改变或者您的组织机构改变自己的口号,只需更新名片模板并发送电子邮件、指示员工下载新版名片即可。当员工保存新名片时,更新的名片将包含员工的信息。这有助于确保顺利过度到新的名片格式,并减少由于员工编辑自己的名片而导致错误的机会。同样,某人接受新职位或更改办公地点时,只需检索新的名片即可反映此更改。无需手动更新该员工的名片。

本主题介绍两种自动填充电子名片的解决方案。使用这两个解决方案,您可以提供一个网页,以便员工能够预览名片模板并检索已使用他们的个人信息自动自定义的名片。可从 SharePoint、Active Directory 或其他联系信息的来源(如 LDAP 目录)获得联系信息。用户选择一个名片模板后,他或她会收到经过自定义的名片。

  • 使用 SharePoint 网站分发名片

    发布名片最稳固而灵活的方法是在 SharePoint 网站上提供名片。如果您已经在组织机构中实施了 Office SharePoint Server 2007,本解决方案只需很少的设置工作。通过 SharePoint 解决方案,可在用户配置文件中提供用户信息。这样可简化设置过程。但是,您可能需要对配置进行小的更改,如从向 SharePoint 提供员工数据的目录(例如 Active Directory)中映射自定义字段。

  • 编写分发名片的自定义 .NET 解决方案

    .NET 解决方案提供的功能与 SharePoint 解决方案相似,但需要更多的编码工作。使用 .NET 解决方案,在服务器上运行的代码可动态地从目录或数据库中检索员工联系信息。您必须使用模拟从数据源获取用户数据,例如,从 Active Directory。在 SharePoint 方案中,可在配置文件中提供数据;而此时必须直接使用数据源的唯一应用程序编程接口 (API) 获取数据。

如下一节中所述,这两个方法都使用模板作为标准名片的基础。本节后面提供了使用 SharePoint 网站或 .NET 解决方案的示例,其中包括代码示例。

Note注意
您可以下载示例解决方案和技术信息,以帮助您在组织机构中部署电子名片。下一节提供了下载程序包的链接并解释了如何使用其中包含的示例代码。

获取分发电子名片的示例解决方案

您可以使用示例代码作为起始点,设计用于分发电子名片的自定义解决方案。示例解决方案作为 Microsoft 下载中心上的 Outlook 2007 示例:分发电子名片下载程序包(该链接可能指向英文页面) 的一部分提供,可用于 SharePoint 解决方案和 .NET 解决方案。

程序包中包含以下各项,可单独下载:

程序包名称 说明

EBCNet.exe

使用 .NET Framework 2.0 的示例解决方案

EBCSharePoint.exe

使用 Office SharePoint Server 2007 的示例解决方案

EBCvCard21Whitepaper.exe

用于 vCard 2.1 格式的 Outlook 扩展(白皮书)

EBCWhitepaper.exe

创建和使用 Outlook 电子名片 — 白皮书

您可以下载适用于您使用的部署平台的示例解决方案(Office SharePoint Server 2007 或 .Framework 2.0)。然后按照以下各节中的说明操作。

示例解决方案程序包

示例解决方案被打包为 IExpress 文件。当您双击 IExpress 程序包时,系统会提示您输入文件的文件夹位置。

使用 Office SharePoint Server 2007 网站部署电子名片的示例解决方案是 SharePoint 部署示例上的 EBC 模板。使用 .NET 解决方案部署名片的示例解决方案是 .NET 部署示例上的 EBC 模板

Note注意
Outlook vCard 规范的相关技术信息在自定义电子名片分发解决方案时非常有用。若要了解有关 Outlook vCard 的详细信息,请参阅下载程序包中包含的白皮书《用于 vCard 2.1 格式的 Outlook 扩展》。

SharePoint 示例解决方案程序包 (EBCSharePoint.exe) 中包含下列文件和文件夹:

文件/文件夹名称 说明

EBCDeploymentExample.aspx

ASPX 页面,包含名片模板的占位符。此页面应设置为项目的起始页。

EBCDeploymentExample.aspx.cs

C# 文件,包含本解决方案的服务器端代码。其中包含加载模板预览并使用用户联系信息填充用户选定模板的代码。

EBCDeploymentExample.csproj

用于 EBCDeploymentExample 解决方案的 Visual Studio 2005 C# 程序集项目。

EBCDeploymentExample.sln

示例的 Visual Studio 2005 解决方案文件。

EBCDeploymentExample.suo

用于 EBCDeploymentExample 解决方案的 Visual Studio 2005 用户选项文件。

ExampleAssembly.snk

用于签名编译 EBCDeploymentExample 项目生成的程序集文件的强名称密钥文件。

ReadMe.txt

安装示例解决方案的说明。

web.config

此网站的配置文件。包括用于名片模板位置、模板预览图像格式和包含用员工数据填充模板的用户配置文件的 SharePoint 网站 URL 的键。

\bin

EBCDeploymentExample 项目完成编译之后,此文件夹包含编译的程序集。编译的程序集可能在 Debug 或 Release 子文件夹中,这取决于编译该项目时的配置。

\obj

EBCDeploymentExample 项目完成编译之后,此文件夹包含临时对象文件。

\Properties

此文件夹包含 AssemblyInfo.cs 文件(为 EBCDeploymentExample 项目自动生成该文件)。

\Templates

此文件夹包含四种示例名片设计的模板和模板预览。

.NET 示例解决方案程序包 (EBCNet.exe) 中包含下列文件和文件夹:

文件/文件夹名称 说明

EBCDeploymentExample.aspx

ASPX 页面,包含名片模板的占位符。此页面应设置为项目的起始页。

EBCDeploymentExample.aspx.cs

C# 文件,包含本解决方案的服务器端代码。其中包含加载模板预览并使用用户联系信息填充用户选定模板的代码。

ReadMe.txt

安装示例解决方案的说明。

web.config

此网站的配置文件。包括名片模板位置、模板预览图像格式和用于提供联系人数据的 Active Directory 的 URL 的键。此配置文件还包含执行 Windows 用户模拟以实现身份验证的参数。

\Templates

此文件夹包含四种示例名片设计的模板和模板预览。

使用 SharePoint 示例解决方案:概述

此处概述使用 SharePoint 示例解决方案的步骤。有关引用示例代码的详细说明,请参阅本主题下文的使用 SharePoint 网站分发名片一节。

安装并配置下面的环境,以便使用 SharePoint 示例解决方案:

  • Office SharePoint Server 2007 必须安装在运行 Microsoft Windows Server 2003 或更高版本的本地计算机上。

  • 必须提供一个 Office SharePoint Server 2007 网站,并用户配置文件进行配置。

满足以上要求后,请按照下列步骤安装和配置适用于您的组织机构环境的解决方案。首先,配置 Web.Config 文件。

  1. 在编辑器中打开下载程序包中的 Web.Config,并将“SiteURL”设置为您的 SharePoint 网站的 URL(例如,YourSharePointURL)。

  2. 在编辑器中打开您的 SharePoint 网站的 Web.Config 文件,并将下载程序包的 Web.Config 文件的“appSettings”节复制到 SharePoint 网站的 Web.Config 文件的“appSettings”节。该网站的 Web.Config 文件位于 SharePoint 的主目录中。

  3. 保存 Web.Config 文件并退出编辑器。

按照以下说明查找您的 SharePoint 网站的 Web.Config 文件。

查找 SharePoint 网站的主目录

  1. 在 Windows 中,单击“开始”菜单,然后单击“管理工具”。

  2. 单击“Internet 信息服务(IIS)管理器”并展开您的计算机的节点。

  3. 展开“网站”,然后右键单击相应的 Web 应用程序(例如,“SharePoint (80)”)。

  4. 单击“属性”。

  5. 单击“主目录”选项卡。

配置完 Web.Config 文件之后,您需要编译该解决方案并将所需文件放在正确的文件夹中。

编译解决方案

  1. 在 Microsoft Visual Studio 2005 中打开 EBCDeploymentExample.sln。

  2. 编译该项目。

  3. 将编译的程序集复制到全局程序集缓存;该程序集默认位于 bin\debug 下,如果您在发布模式下进行编译,则位于 bin\release 下。有关详细说明,请参阅本主题下文“使用 SharePoint 网站分发名片”中的将解决方案复制到全局程序集缓存。

  4. 将 EBCDeploymentExample.aspx 和 Templates 文件夹复制到 <SharePoint 安装驱动器>\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS。

若要复制此文件,您可能需要更改 EBCDeploymentExample.aspx 的权限。

导航到 http://YourSharePointURL/_layouts/EBCDeploymentExample.aspx,以浏览示例解决方案。

显示在网站上的名片

当用户单击一个名片图像时,他们会看到一个类似于下面的示例的对话框:

打开 vCard 对话框

当用户单击“打开”时,名片会添加到 Outlook 中的联系人中,并使用他们的联系信息进行个性化设置。

使用 .NET 示例解决方案:概述

此处概述使用 .NET 示例解决方案的步骤。有关引用示例代码的详细说明,请参阅本主题下文的使用 .NET 2.0 内部网站分发名片一节。

要使用 .NET 示例解决方案,必须在本地计算机上安装 Microsoft Visual Studio 2005。使用示例解决方案时,使用本地网站会很有帮助。

配置使用示例解决方案的环境。

  1. 在 Visual Studio 中,打开现有网站并选择示例文件夹。

  2. 在“网站”菜单上,单击“添加引用...”,并选择“System.DirectoryServices”。

  3. 在“网站”菜单上,单击“添加引用...”,并选择“System.Drawing”。

  4. 在“解决方案资源管理器”中,右键单击“EBCDeploymentExample.aspx”并选择“设为起始页”。

  5. 在编辑器中编辑下载程序包中的 Web.Config 并将“userName”和“password”设置为在您的域中有效的用户名和密码。

    Note注意
    在文件中包括纯文本用户名和密码不是一种安全的解决方案。有关创建更安全的解决方案的相关信息,请参阅下列文章:如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串.NET Framework 开发人员指南:ASP.NET 模拟
  6. 在 Web.Config 中,设置“ADPath”,指向网络中有效的 Active Directory。

  7. 保存 Web.Config 文件并退出编辑器。

完成这些配置步骤之后,您可以单击“运行”以在 Visual Studio 中运行该网站,查看示例解决方案。

当用户单击一个名片图像时,他们会看到一个类似于下面的示例的对话框:

打开 vCard 对话框

当他们单击“打开”时,名片会添加到 Outlook 中的联系人中,并使用他们的联系信息进行个性化设置。

电子名片模板

无论选择哪种方法在您的组织机构内分发电子名片,均可创建并提供模板,以帮助确保标准化的电子名片。名片可能包括工作组或公司中所有名片的通用信息,也可以进行设计以适合您的公司品牌形象,包括徽标、颜色和版式。

若要构建模板,您可以在 Office Outlook 2007 中创建新的联系人项目并设计名片。将名片另存为网站上的一个文件。最后,可以制作示例名片的屏幕快照图像,来创建该名片的预览图像。

在新的 Outlook 联系人中创建名片

提供用户可以下载的电子名片的第一步是设计要用作模板的名片。为此,可在新的 Outlook 联系人中创建一个名片。

在 Outlook 中创建电子名片

  1. 在“文件”菜单上,指向“新建”,然后单击“联系人”。

  2. 键入该联系人的名称(例如,示例名片)。

  3. 在名片上输入信息。例如,您可能要包括:

    • 全名

    • 职务

    • 公司

    • 商务电话

    • 商务传真

    • 电子邮件地址

包含希望在名片上显示的所有项目。名片下载时,将用个人信息填充特定于每个人的项目。其他项目(如商务传真号)可能对组织机构中的每个人都相同。

使用示例信息创建名片后,在联系人项目功能区中单击“名片”,打开电子名片 (EBC) 编辑器。

在编辑器中设计名片,包括版式和功能。例如,您可以通过单击“卡片设计”区域中的“更改”来导入公司的徽标。调整图像布局、区域和对齐方式,直到您的徽标显示在名片上的正确位置。

调整文本字段,以便文本按所需顺序显示并采用正确的大小和颜色。您可以更改背景色。

单击“保存并关闭”以保存更改。

在 Web 服务器上保存电子名片模板

接下来,您将名片另存为 Web 服务器上的文件;该 Web 服务器提供网站,以供人们预览并下载名片。

将电子名片另存为 Web 服务器上文件

  1. 单击您创建的联系人,将其选中。

  2. 在“文件”菜单上,单击“另存为”。

  3. 在“保存位置”列表中,浏览到您在 Web 服务器上保存模板的文件夹。

  4. 在“文件名”框中,键入一个描述性文件名,如 office.vcf。

  5. 在“保存类型”列表中,单击“vCard 文件”。

创建电子名片预览图像

如果您有几个名片设计,可以通过提供名片模板的预览图像来帮助用户决定要下载哪个名片。

提供名片模板的预览图像

  1. 在 Outlook 中, 打开包含您设计的名片并且要用作模板的联系人项目。

  2. 在打开联系人项目的对话框中,右键单击名片图像。

  3. 在上下文菜单中,单击“复制图像”。

  4. 在 Microsoft 画图程序中,在“工具”菜单上,单击“编辑”。

  5. 单击“粘贴”,粘贴预览图像。

  6. 在“工具”菜单上,单击“文件”。

  7. 单击“保存”,并选择此前保存您的 vCard 的文件夹。

使用 SharePoint 网站分发名片

创建标准化电子名片模板之后(如上一节中所述),您可以从几个选项中选择如何向员工提供模板以便他们可以获得个性化的名片。如果在组织机构中使用 SharePoint,提供名片的一个简单方法是在内部 Office SharePoint Server 2007 网站上创建一个包含示例图像的页面。然后包含在 SharePoint 中查询用户数据来填充对应于预览图像的名片模板的代码。

前文使用 SharePoint 示例解决方案:概述中介绍了使用 SharePoint 示例解决方案的步骤。本节包括有关如何使用并为您的组织机构自定义示例的详细信息。

在此处提供的示例中,由 C# 文件中的代码支持的 ASP.NET 页面可帮助您在 SharePoint 网站上分发名片。

您可以作为旨在帮助管理员开始分发电子名片的程序包的一部分下载示例 SharePoint 解决方案。可在 Microsoft 下载中心上的 Outlook 2007 示例:分发电子名片下载程序包(该链接可能指向英文页面) 中下载该解决方案。

创建 C# 类库项目

通过创建类库,可将您的项目配置为编译成程序集。然后,可将编译的程序集复制到全局程序集缓存 (GAC)。要使 EBCDeploymentExample.aspx 和 EBCDeploymentExample.aspx.cs 在 SharePoint 中协同工作,EBCDeploymentExample.aspx 必须引用 GAC 中的一个程序集,其中包含 EBCDeploymentExample.aspx.cs 中的已编译 C# 代码。

在 Visual Studio 中创建新的 C# 程序集项目

  1. 在 Visual Studio 中,在“文件”菜单中单击“新建”,然后单击“项目”。

  2. 在“新建项目”对话框中,在“项目类型:”区域,单击“Visual C#”。

  3. 在“模板:”区域,单击“类库”。

  4. 在“名称:”字段,为该项目键入一个名称(例如,EBCDeploymentExample)并指定一个位置或者使用默认的位置。

  5. 单击“确定”。

    新建 Visual Studio 项目
    新建 C sharp 项目

使用强名称密钥签名程序集

要使编译的程序集在 SharePoint 中变得可信,必须使用强名称密钥进行签名。您可以使用 ExampleAssembly.snk 文件中的示例解决方案提供的强名称密钥签名编译的程序集,也可以创建自己的强名称密钥。

使用示例中提供的强名称密钥签名编译的程序集

  1. 在 Visual Studio 中,转到“解决方案资源管理器”。

  2. 右键单击“EBCDeploymentExample”,然后单击“属性”。

  3. 在“签名”选项卡上,选中“为程序集签名”复选框。

  4. 在“选择强名称密钥文件:”下拉列表中,单击“<浏览...>”。

  5. 在“打开文件”对话框中,浏览到 ExampleAssembly.snk 文件并单击“打开”。

  6. 在“文件”菜单上,单击“保存”以保存所做的更改。

    签名程序集属性选项卡
    选择一个强名称密钥

有关强名称密钥和签名程序集的详细信息,请参阅以下资源:.NET Framework 开发人员指南:创建程序集.NET Framework 开发人员指南 — 如何:使用强名称为程序集签名

指定自定义解决方案的选项

要自定义示例解决方案以适应您的环境,必须为服务器代码提供以下信息:

  • 在电子名片页面上显示模板的位置。

  • 对应于每个名片的缩略图的格式。这种格式指保存名片预览时使用的扩展名,例如,.jpg。

  • 将在其上运行本解决方案的 SharePoint 网站的 URL。

利用 SharePoint Web.Config 文件可方便地向服务器代码提供这些信息。Web.Config 位于 SharePoint 网站的主目录中。要查找 SharePoint 网站的主目录,请按照使用 SharePoint 示例解决方案:概述中的查找 SharePoint 网站的主目录 主题中所属的步骤执行操作。

将下载的示例解决方案中包括的 Web.Config 文件中的参数复制到您的 SharePoint Web.Config 文件中的“appSettings”部分。将“siteURL”的值更改为您的本地 SharePoint 网站的 URL。如有必要,更新“templatePath”和“templateFormat”设置的值。

<configuration>

...

</appSettings>

<add key="templatePath" value="~/_layouts/Templates" />

<add key="templateFormat" value="jpg" />

<add key="siteURL" value="http://example" />

...

</appSettings>

...

</configuration>

添加所需引用

要使示例解决方案正常工作,您必须向解决方案添加特定的引用。在 Visual Studio 中,右键单击“EBCDeploymentExample”项目并单击“添加引用…”,将下列引用添加到您的解决方案。

  • System

  • System.Configuration

  • System.Drawing

  • System.Web

  • Microsoft.SharePoint

  • Microsoft.Office.Server

该示例解决方案使用 SharePoint 用户配置文件作为员工联系信息的数据源。下一节提供有关在示例应用程序中使用用户配置文件的详细信息。如果在代码中包括特定的引用,便可更加方便地使用用户配置文件。将以下项目添加到 EBCDeploymentExample.aspx.cs:

using System;

...

using Microsoft.SharePoint;

using Microsoft.Office.Server.UserProfiles;

通过访问 SharePoint 用户配置文件检索联系信息

SharePoint 用户配置文件提供了一致的应用程序编程接口 (API),可用来访问 SharePoint 用户数据,而不考虑原始数据源(例如,Active Directory 或 LDAP 目录)。在该示例解决方案,用户配置文件提供完成名片所需的员工联系信息。

执行下面的步骤来检索员工的联系信息并填充名片:

  1. 查找已选择下载名片的员工的 SharePoint 用户配置文件。

  2. 为每个项目创建属性(姓名、职务等)。

  3. 在 UserProfile 中提取每一项的值。

首先,查找该用户的 SharePoint 配置文件。请参阅示例解决方案中的 PopulateCard 函数。

// Obtain the location of this SharePoint site.

String siteURL = ConfigurationManager.AppSettings["siteURL"];

// Create a Profile Manager for this site.

UserProfileManager profileManager = new UserProfileManager(Microsoft.Office.Server.ServerContext.GetContext(new SPSite(siteURL)));

// Find the identity of the user accessing this page.

string sAccount = this.User.Identity.Name;

// Get the SharePoint profile for the user with the given identity.

UserProfile user = profileManager.GetUserProfile(sAccount);

接下来,为每个项目创建属性。

UserProfileValueCollection givenName = null;

UserProfileValueCollection lastName = null;

UserProfileValueCollection jobTitle = null;

UserProfileValueCollection email = null;

UserProfileValueCollection phone = null;

UserProfileValueCollection company = null;

从 UserProfile 中检索属性的值。当 SharePoint 与用户数据源同步时,默认情况下未包含在 UserProfile 中的属性可以包含在 UserProfile 中。例如,“company”不是默认 UserProfile 属性。在此代码示例中,“company”映射到向 SharePoint 提供员工联系人数据的目录中的 Company 字段。

givenName = user[PropertyConstants.FirstName];

lastName = user[PropertyConstants.LastName];

jobTitle = user[PropertyConstants.Title];

email = user[PropertyConstants.WorkEmail];

phone = user[PropertyConstants.WorkPhone];

company = user["company"];

有关定义其他 SharePoint UserProfile 属性的详细信息,请参阅 SharePoint 产品和技术中的个性化服务

使用网站模板实现统一的外观

您可以简单直观地按照网站的外观和感觉配置 SharePoint 网站上承载的新页面。通过指定一个母版页文件,然后在页眉、页脚和 SharePoint 网站网页通用的其他窗格中添加 asp:Content 节,可使新的页面与整个网站完美融合。

请注意,要使 SharePoint 承载的页面访问编译的程序集(如 EBCDeploymentExample.aspx),则页面必须引用程序集的名称、版本和公钥令牌。可使用 Inherits 参数指定这些值,如下面的示例所示。

母版页文件和 Inherits 参数都在 EBCDeploymentExample.aspx 顶部的 Page 标记中设置。

<%@ Page Language="C#" MasterPageFile="~/_layouts/simple.master" ValidateRequest="False" Inherits="EBCDeployment.Example, EBCDeploymentExample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0bac7bedd8e30aa1" %>

内容节指定 SharePoint 网站模板执行的标准 SharePoint 组件。下面的内容节说明了如何执行网站模板。

<asp:Content ID="PageTitle" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">

<SharePoint:EncodedLiteral ID="EncodedLiteral1" runat="server" text="Electronic Business Cards" EncodeMethod='HtmlEncode'/>

</asp:Content>

在 SharePoint 网站中承载新网页

要在 SharePoint 中承载新网页,需要将网页放置在 SharePoint LAYOUTS 虚拟目录中。为此,请将 EBCDeploymentExample.aspx 文件复制到以下文件夹:

  1. <系统驱动器>:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

    现在,用户便可在以下位置访问该网页:

  2. http://示例/_layouts/EBCDeploymentExample.html。

    其中,示例指 SharePoint 网站的名称。

将解决方案复制到全局程序集缓存

实施 SharePoint 示例解决方案的最后一个步骤是编译该程序集,然后将其复制到全局程序集缓存 (GAC);在这里,可以配置 EBCDeploymentExample,以访问程序集。将编译的程序集 — EBCDeploymentExample.dll — 从 <项目文件夹>\bin\debug 复制到位于 <系统驱动器>:\windows\assembly 的 GAC。如果您在发布模式下进行编译,则文件夹将是 bin\release,而不是 \bin\debug。

若要将您的程序集复制到新文件夹,在 Windows 资源管理器中打开这两个文件夹并将 .dll 文件从 \debug 文件夹拖到 GAC 文件夹。

Note注意
您可能需要重置 Internet Information Services (IIS),然后新的 SharePoint 页面才能访问该程序集并正常工作。若要重置 IIS,请打开 Windows 命令窗口,键入“iisreset”。

现在,您可以导航到 http://YourSharePointURL/_layouts/EBCDeploymentExample.aspx,浏览示例解决方案。

使用 .NET 2.0 内部网站分发名片

如果您的组织机构没有 Microsoft Office SharePoint Server 2007 网站,或者希望更加灵活地提供电子名片,可以创建一个用来分发名片的自定义 .NET 解决方案。使用 .NET 示例解决方案的步骤在前文使用 ASP.NET 示例解决方案:概述中做过简要介绍。本节包括有关如何使用并为您的组织机构自定义示例的详细信息。

如上一节中所述,创建标准化电子名片模板之后,您可以自定义下载的 .NET 示例解决方案,使用 Active Directory 和 ASP.NET 2.0 为您的组织机构实施解决方案。与 SharePoint 选项类似,您可以使用此解决方案在内部网站上提供一个包含预览图像的页面并查询用来填充预览图像对应的名片模板的员工数据。

本节提供相关指导,以帮助不熟悉如何结合使用 Active Directory 和 .NET Framework 2.0 的开发人员理解该示例解决方案。

在 Visual Studio 中打开当前网站

要开始使用下载程序包中提供的示例 .NET 解决方案,请在 Microsoft Visual Studio (VS) 5.0 中打开本地网站并导航到包含该示例解决方案的文件夹。当在 VS 中打开现有网站时,该 VS 项目会识别 EBCDeploymentExample.aspx 和 EBCDeploymentExample.aspx.cs 文件之间的关系。网站的配置可从示例解决方案的 Web.config 文件自动导入。

在 Visual Studio 中结合使用现有网站与示例解决方案

  1. 在 Visual Studio 中,在“文件”菜单上单击“打开”,然后单击“网站”。

  2. 浏览到包含下载程序包中的示例解决方案的文件夹。

  3. 单击“确定”。

指定自定义解决方案的选项

要自定义示例解决方案以适应您的环境,必须为服务器代码提供以下信息:

  • 在电子名片页面上显示模板的位置。

  • 对应于每个名片的缩略图的格式。这种格式指保存名片预览时使用的扩展名,例如,.jpg。

  • 为个性化名片模板提供员工数据的 Active Directory 的文件夹路径。

  • 身份验证方法;例如,Windows 身份验证。

  • 模拟使用的凭据。

您还可能会选择为 Visual Studio 编译器提供程序集引用。下文“添加所需引用”说明中提供了示例解决方案所需的引用。

利用网站 Web.Config 文件可方便地向服务器代码提供这些信息。打开示例解决方案中的 Web.Config 文件,设置您的配置的参数值。

<configuration>

<appSettings>

<add key="templatePath" value="~/Templates"/>

<add key="templateFormat" value="jpg"/>

<add key="ADPath" value="LDAP://ServerName.exchange.yourdomain.com/DC=exchange, DC=yourdomain,DC=com "/>

</appSettings>

<system.web>

<authentication mode="Windows"/>

<identity impersonate="true" userName="username"password="password"/>

</system.web>

</configuration>

重要的是为“ADPath”参数指定一个有效的 Active Directory。“userName”和“password”参数表示网站服务帐户的用户名和密码。一个更安全地提供凭据的方法是,加密这些值,而不使用明文形式。有关加密凭据的详细信息,请参阅如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串

添加所需引用

您必须为解决方案添加特定的引用,以使示例解决方案能够正常工作。在 Visual Studio 中,右键单击“EBCDeploymentExample”项目,然后单击“添加引用…”,将下列每个引用添加到您的解决方案。

  • System

  • System.Configuration

  • System.DirectoryServices

  • System.Web

连接并查询 Active Directory 需要 System.DirectoryServices 引用。

如果在代码中添加特定引用,可更加方便地使用 Active Directory。将下列引用添加到 EBCDeploymentExample.aspx.cs:

...

Using System.DirectoryServices;

连接 Active Directory

要连接 Active Directory,请创建包含 Active Directory 路径变量(“ADPath”)的“DirectoryEntry”参数:

DirectoryEntry de = new DirectoryEntry(ConfigurationManager.AppSettings["ADPath"]);

在 Active Directory 中查询员工联系信息

可使用 DirectorySearcher 函数在 Active Directory 中查询员工联系信息。可使用上一节中创建的 DirectoryEntry 创建该函数。

DirectorySearcher ds = new DirectorySearcher(de);

接下来,确定访问该网站的用户的标识。从用户的标识中删除域,并确保只检索具有正确别名的用户的数据。本示例假定组织机构中的电子邮件地址格式是别名@yourdomain.com

string longAlias = this.User.Identity.Name;

int start = longAlias.IndexOf("\\"); // Parse away the domain name.

int end = longAlias.Length; // Get the length of the alias.

string alias = longAlias.Substring(start + 1, (end - (start + 1)));

ds.Filter = "(mailnickname=" + alias + ")";

接下来,指定将要检索的 Outlook 联系人 (vCard) 的属性,以便稍后进行更新。

ds.PropertiesToLoad.Add("givenName"); // Get the given name.

ds.PropertiesToLoad.Add("sn"); // Get the surname.

ds.PropertiesToLoad.Add("title"); // Get the job title.

ds.PropertiesToLoad.Add("mail"); // Get the email address.

ds.PropertiesToLoad.Add("telephoneNumber"); // Get the phone number.

ds.PropertiesToLoad.Add("company"); // Get the company name.

在目录中搜索具有指定别名的用户并将结果存储在一个 SearchResultCollection 中。

SearchResultCollection data = ds.FindAll();

访问 Active Directory 查询结果中的联系信息

从 Active Directory 中检索联系信息后,可以使用这些信息对名片进行个性化设置。

若要访问 Active Directory 查询结果中的联系信息,首先创建联系信息的属性。

PropertyValueCollection givenName = null;

PropertyValueCollection lastName = null;

PropertyValueCollection jobTitle = null;

PropertyValueCollection email = null;

PropertyValueCollection phone = null;

PropertyValueCollection company = null;

然后在结果集中查找属性的值。

// In case invalid data was returned, try...

try

{

// Get the properties needed for the EBC.

DirectoryEntry resultEntry = data[0].GetDirectoryEntry();

givenName = resultEntry.Properties["givenName"];

lastName = resultEntry.Properties["sn"];

jobTitle = resultEntry.Properties["title"];

email = resultEntry.Properties["mail"];

phone = resultEntry.Properties["telephoneNumber"];

company = resultEntry.Properties["company"];

}

catch (Exception)

{

// Create a writer for error output.

StreamWriter sw = new StreamWriter(Response.OutputStream);

sw.WriteLine("Error updating template!");

sw.Close();

}

员工下载名片时,它便填充了该员工的联系信息。

下载此书籍

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 2007 Office Resource Kit 的可下载内容