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