2

我正在建立一个网站,其中用户有个人资料,个人资料有个人资料图片。个人资料图片图像需要保存在我的本地存储中。有没有我可以使用其他服务(例如Gravatar)来处理我网站中的个人资料图片。这样我就不需要在我的站点文件夹中维护用户图像以节省空间等。我只会要求用户链接到Gravatar个人资料并在我的网站个人资料中使用他们的个人资料图像。我正在用 ASP.NET 开发我的网站,请指导是否有任何其他服务也可以帮助我实现这一目标。提前致谢。

4

2 回答 2

3

AjaxControlToolkit内置了Gravatar支持

<ajaxToolkit:Gravatar runat="server"
    Email="test@superexpert.com"
    Size="200"
    Rating="R"
    DefaultImageBehavior="Identicon"
    DefaultImage="http://tinyurl.com/3bpsaac" />

当然,这也可以通过编程方式设置......

此外,如果您的网站提供 OAuth 登录(如 Facebook、LinkedIn 等),您也可以使用它们的 API 引用这些个人资料图像。例如,Facebook 看起来像:

<asp:Image ImageUrl="http://graph.facebook.com/[fbid]/picture?type=large"
    ToolTip="Facebook Avatar"
    Width="180"
    Height="180" />

替换[fbid]为他们的 facebook id。

于 2013-03-08T14:00:07.097 回答
2

你不需要询问他们的 Gravatar,也不需要任何特别的东西来获得它(除了用户的电子邮件地址)。从他们的文档中

Gravatar 上的所有 URL 均基于使用电子邮件地址的哈希值...。为确保哈希值一致且准确,应采取以下步骤创建哈希值:

  1. 修剪电子邮件地址的前导和尾随空格
  2. 强制所有字符小写
  3. md5 散列最终字符串

因此,如果您<asp:Image ID="_grav" runat="server" />的页面上有,从最基本的意义上说,它只是:

string email = "yourEmail.CoolSite.net "; //this would be the email you have on file for them
string hashedEmail = FormsAuthentication.HashPasswordForStoringInConfigFile(email.Trim().ToLower(), "MD5").ToLower();
_grav.ImageUrl = String.Format("http://www.gravatar.com/avatar/{0}", hashedEmail);

您可以使用许多其他参数(大小、如果不存在 gravatar 时的默认图像等),它们只是对该 ImageUrl 的查询字符串添加。阅读图像请求

于 2013-03-08T14:34:52.830 回答