包含的Gravatar在网站

问题描述:

我建立一个网站,用户有配置文件和配置文件有个人资料照片。 配置文件图片图片需要保存在本地存储中。 有什么,我可以用其他服务,如的Gravatar将照顾个人资料图片在我的网站。这样我就不需要在我的网站文件夹中保存用户图像节省空间等。 我只会要求用户链接那里Gravatar个人资料和配置文件中的档案图像我的网站的个人主页。 我发展我的网站在ASP.NET 如果有任何其他服务也可以帮助我实现这个请指导。 在此先感谢。包含的Gravatar在网站

+4

你读过的Gravatar的文档? – SLaks 2013-03-08 13:57:31

AjaxControlToolkitGravatar支持内置。

<ajaxToolkit:Gravatar runat="server" 
    Email="[email protected]" 
    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" /> 

与他们的Facebook ID替换[fbid]

你不必问他们的Gravatar,你并不需要什么特别的得到它(除了用户的电子邮件地址)。从their docs

上的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。阅读Image Requests

+1

事实上,你在哈希邮件上做了一个ToLower()是我失踪的部分。显然降低电子邮件和散列非常重要。谢谢! – BrianLegg 2016-12-12 15:23:14