---
title: "コンタクトファクトリークラス"
slug: "the-contactfactory-class"
abstract: ""
---
# コンタクトファクトリークラス

ContactFactoryクラスは現在のランタイムユーザーのIDを取得するために使われます。デフォルトの実装は追跡のためにSitecore Analyticsに依存しています。もしこれがあなたのニーズに合わない場合は、ContactFactoryクラスを拡張しGetContactメソッドを上書きすることで変更できます。

以下はデフォルトインスタンスの動作例です。ECSからユーザーのIDを得た場合、そのIDを持つTracker.Current.Contact ( Tracker.Current.Session.Identify()メソッドを用いて)識別し、そこからContactFactoryクラスがこのIDを返します。外部ユーザーからIDがなければ、Sitecore Analyticsが作成したIDが使われます。

public virtual string GetContact()
{
if (Tracker.Current == null)
{
if (HttpContext.Current != null &&
HttpContext.Current.User != null)
{
return HttpContext.Current.User.Identity.Name;
}

return System.Threading.Thread.CurrentPrincipal.Identity.Name;
}
var user = Tracker.Current.Contact.Identifiers.Identifier;
if (string.IsNullOrEmpty(user))
{
 user = Sitecore.Data.ID.Parse(Tracker.Current.Contact.ContactId).ToString();
}
return user;
}