2

ユーザーにプロファイルがあり、プロファイルにプロファイル写真がある Web サイトを構築しています。プロフィール写真の画像は、ローカル ストレージに保持する必要があります。私のサイトのプロフィール画像を処理するGravatarのような他のサービスを使用できるものはありますか? このようにして、スペースを節約するなど、サイト フォルダーにユーザー画像を維持する必要はありません。ユーザーにGravatarプロファイルにリンクして、サイトのプロファイルでプロファイル画像を使用するように依頼するだけです。ASP.NET でサイトを開発していますが、これを実現するのに役立つサービスが他にあるかどうかを教えてください。前もって感謝します。

4

2 に答える 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]FacebookIDに置き換えます。

于 2013-03-08T14:00:07.097 に答える
2

Gravatar を要求する必要はなく、それを取得するために特別なものは必要ありません (ユーザーの電子メール アドレスを除いて)。彼らのドキュメントから:

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);

その ImageUrl へのクエリ文字列の追加だけで、使用できる他の多くのパラメーター (サイズ、gravatar が存在しない場合の既定の画像など) があります。画像リクエストの読み取り。

于 2013-03-08T14:34:52.830 に答える