包含的Gravatar在网站
我建立一个网站,用户有配置文件和配置文件有个人资料照片。 配置文件图片图片需要保存在本地存储中。 有什么,我可以用其他服务,如的Gravatar将照顾个人资料图片在我的网站。这样我就不需要在我的网站文件夹中保存用户图像节省空间等。 我只会要求用户链接那里Gravatar个人资料和配置文件中的档案图像我的网站的个人主页。 我发展我的网站在ASP.NET 如果有任何其他服务也可以帮助我实现这个请指导。 在此先感谢。包含的Gravatar在网站
的AjaxControlToolkit有Gravatar支持内置。
<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都基于使用 电子邮件地址的散列值的....为了确保一致和准确的哈希值,应采取 以下步骤来创建一个散列:
- 修剪引导和电子邮件地址结尾的空白
- 强制所有字符为小写
- 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。
事实上,你在哈希邮件上做了一个ToLower()是我失踪的部分。显然降低电子邮件和散列非常重要。谢谢! – BrianLegg 2016-12-12 15:23:14
你读过的Gravatar的文档? – SLaks 2013-03-08 13:57:31