2

我正在为我公司网站上的员工信息构建一个 SharePoint (MOSS) 发布网站。我有一个员工内容类型,并且正在使用“联系电子邮件地址”站点列来存储员工的电子邮件地址。

我想要的是能够在运行时对电子邮件地址进行编码,以防止垃圾邮件发送者获取真实的电子邮件地址。当用户单击电子邮件超链接时,这将被解码,例如以下 HTML 将被发送到浏览器:

<a href="javascript:sendEmail('5237952A6F67618E407373772E6063212E6175')">Email Jonny</a>

我已经有了用于从上面无意义的字符串中编码/解码文本值的 javascript 方法,但我不太确定如何在考虑 SharePoint 的情况下处理这个问题。我在考虑自定义控件和/或自定义 J-Query?

任何帮助将非常感激!

强尼

4

3 回答 3

2

如果您让这些员工成为网站的成员,SharePoint 会处理此问题。

您可以向他们发送电子邮件,但电子邮件地址只会在发送时使用,当您添加按钮向某人发送电子邮件时,它不会显示电子邮件地址,它在后端处理。

SPUtility.SendEmail(SPContext.Current.Web, false, false,
[SPUser.Email][1], "E-mail title",
"E-mail body");

替代文字
(来源:msdn.com

于 2009-02-18T00:42:35.257 回答
2

在您无法将用户放入 AD 的情况下,自定义字段控件将使您能够包含所需的自定义呈现 (jquery) 以及将数据作为“普通”文本输入的能力。

自定义字段一旦定义“就可以工作”,无论您需要在哪里显示该字段。

鉴于您正在考虑使用 JQuery,那么问题就变成了确保当您需要我们使用这种类型的字段时正确链接 jquery 库的问题。

于 2009-02-18T02:57:57.943 回答
0

您可以尝试另外两种选择/方法:

(1)实现自定义TextField控件,继承自Microsoft.SharePoint.WebControls.TextField并覆盖RenderFieldForDisplay

然后在代码中 - 对显示的字段进行编码。

将此控件添加到 safecontrols 并使用它来代替页面布局中的普通 TextField。

(2) 使用现有的TextField控件,但是在editmode的TextField旁边使用jQuery注入一个按钮[Encode]。

使用 JavaScript 编码方法将用户键入的内容编码为编码值,替换现有的 TextField 值。然后他们可以将其保存到 SharePoint。


我会根据您的部署场景对这些方法进行评分 - Nat 的方法是最干净的,但可能更多地涉及部署,而仅 jQuery 的方法似乎非常hackish,但部署起来很容易。覆盖 TextField 方法可能位于中间的某个位置。

于 2009-02-19T07:04:21.930 回答