MVC 3(かみそり)アプリケーションで.netメンバーシップを使用しています。ASP.NET MVC 3およびHttpContext.Current.User.Identity.Name
私は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(); }
}
}
あなたは上記のクラスで見ることができるように、私は、メンバーシップユーザーを取得するにはGUIDとしてHttpContext.Current.User.Identity.Nameをキャストする必要があります。
質問は、なぜ、ログインの検証後、HttpContext.Current.User.Identity.Nameで私はGUID値(userID)を取得し、ユーザー名を取得しないのですか?
これは正常ですか?
Membership.GetUser()がnullであってもHttpContext.Current.User .Identity.IsAuthenticatedがtrueです。 もちろん、プロファイルクラスを実行する前に、別のクラスでメンバーシップの検証を実行します。 'Membership.ValidateUser(email、password) ' 何が問題なのか分かりません。何か不足していますか? – Francesco