在网站中包含Gravatar

时间:2013-03-08 13:56:44

标签: asp.net gravatar

我正在建立一个网站,用户拥有个人资料和个人资料,其中包含个人资料照片 需要在我的本地存储上维护配置文件图片图像。 是否有任何我可以使用其他服务,如 Gravatar ,将负责我的网站中的个人资料图片。这样我就不需要在我的站点文件夹中保存用户图像,节省空间等。 我只会要求用户链接 Gravatar 个人资料,并在我网站的个人资料中使用他们的个人资料图片。 我正在ASP.NET中开发我的网站 请指导是否有任何其他服务可以帮助我实现这一目标。 提前谢谢。

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:2)

你不需要问他们的Gravatar,你不需要任何特殊的东西(除了用户的电子邮件地址)。来自their docs

  

Gravatar上的所有网址都基于使用散列值   电子邮件地址....为了确保一致和准确的哈希,   应采取以下步骤来创建哈希:

     
      
  1. 修剪电子邮件地址中的前导和尾随空格
  2.   
  3. 强制所有字符为小写
  4.   
  5. md5哈希最终字符串
  6.   

因此,如果您的页面上有<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的查询字符串添加。阅读Image Requests