Gravatar i ASP.NET

Korzystając z różnych portali w sieci staramy się być jednoznacznie identyfikowani – stosując ten sam nick, czy dodając awatara. Jednak posiadanie kont na wielu portalach znacznie utrudnia zarządzanie nimi (np. gdy postanowimy nasze zdjęcie uaktualnić lub usunąć).

Z pomocą przychodzi Gravatar (globally recognized avatar). Jest to taka globalna przechowalnia awatarów. System ten kojarzy awatary z adresami e-mail. Tak więc zakładając konto na jakimś portalu i podając naszego maila, portal ten może pobrać naszego gravatara. Jeżeli postanowimy uaktualnić zdjęcie – robimy to tylko w jednym miejscu.

Dodanie gravatara do naszej strony jest niezwykle proste i polega na stworzeniu odpowiedniego urla , który podajemy jako źródło dla obrazka.

Każdy url zaczyna się od adresu
> http://www.gravatar.com/avatar/

Następnie dodajemy adres e-mail shashowany algorytmem MD5
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802

Dodatkowo możemy podać kilka opcjonalnych parametrów:

s – rozmiar awatara w pikselach
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?s=80

r – “kategorię” awatara – pozwala na filtrowanie zawartości awatara
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?r=g

d – domyśne zdjęcie – wysyłane jeżeli dla danego adresu e-mail nie ma zarejestrowanego gravatara. Jako domyślne zdjęcie podajemy url konkretnego zdjęcia lub podajemy typ automatycznie wygenerowanego zdjęcia. Do wyboru mamy identicon, monsterid oraz wavatar.
http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=http%3A%2F%2Fexample.com%2Fimages%2Fexample.jpg
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=identicon
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=monsterid
> http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=wavatar

Dodając naszego gravatara ustawiamy jego kategorię (oznaczoną literą). I tak:

  • G – może być wyświetlany na wszystkich stronach
  • PG – może zawierać nieprzyjemne treści
  • R – treści nieerotyczne, ale nie dla dzieci
  • X – dostępny na stronach z treścią erotyczną

A oto jak można wygenerować gravatara w C#:

[sourcecode language=”csharp”]

protected string GetGravatarUrl(string email) {
var hash = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(email, "MD5");

var gravatarUrl = new StringBuilder();
gravatarUrl.Append("http://www.gravatar.com/avatar/");
gravatarUrl.Append(hash.ToLowerInvariant());
gravatarUrl.Append("?s=60");
gravatarUrl.Append("&r=g");
gravatarUrl.Append("&d=mavatar");

return gravatarUrl.ToString();
}

[/sourcecode]

Z metody korzystamy w następujący sposób:

[sourcecode language=”xhtml”]

<asp:DataList ID="dlUserList" runat="server">
<itemTemplate>
<img alt=&#039;<%# Eval("UserName") %>&#039; src="<%# GetGravatarUrl(Eval("EmailAddress")) %>" />
</itemTemplate>
</asp:DataList>
[/sourcecode]

Można też skorzystać z gotowej kontrolki. Można ją pobrać pod adresem: http://www.freshclickmedia.com/wp-content/uploads/2008/02/gravatar.zip

Opis implementacji kontrolki: http://www.freshclickmedia.com/blog/2008/02/gravatar-aspnet-control/

1 Response

  1. Pingback: dotnetomaniak.pl

Comments are closed.