MVC 3 (かみそり) アプリケーションで .net メンバーシップを使用しています。
HttpContext.Current.User.Identity.Name を使用してメンバーシップ ユーザーを取得するカスタム プロファイル クラスを実装しました。
public class UserProfile : ProfileBase
{
static public UserProfile CurrentUser
{
get {
return (UserProfile)(ProfileBase.Create(Membership.GetUser(new Guid(HttpContext.Current.User.Identity.Name)).UserName));
}
}
public string FirstName
{
get { return ((string)(base["FirstName"])); }
set { base["FirstName"] = value; Save(); }
}
public string LastName
{
get { return ((string)(base["LastName"])); }
set { base["LastName"] = value; Save(); }
}
}
上記のクラスでわかるように、メンバーシップ ユーザーを取得するには、HttpContext.Current.User.Identity.Name を GUID としてキャストする必要があります。
問題は、ログインの検証後、HttpContext.Current.User.Identity.Name で、ユーザー名ではなく GUID 値 (userID) を取得するのはなぜですか?
それは正常ですか?