我正在建立一个网站,用户拥有个人资料和个人资料,其中包含个人资料照片 需要在我的本地存储上维护配置文件图片图像。 是否有任何我可以使用其他服务,如 Gravatar ,将负责我的网站中的个人资料图片。这样我就不需要在我的站点文件夹中保存用户图像,节省空间等。 我只会要求用户链接 Gravatar 个人资料,并在我网站的个人资料中使用他们的个人资料图片。 我正在ASP.NET中开发我的网站 请指导是否有任何其他服务可以帮助我实现这一目标。 提前谢谢。
答案 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上的所有网址都基于使用散列值 电子邮件地址....为了确保一致和准确的哈希, 应采取以下步骤来创建哈希:
- 修剪电子邮件地址中的前导和尾随空格
- 强制所有字符为小写
- 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。