私の質問のとおりです。これにより、匿名ユーザーとログイン ユーザーに同じユーザー名が生成されますか?
編集:紛らわしい質問で申し訳ありません。私が見つけようとしているのは、 User.Identity.Name が現在ログインしているユーザーのユーザー名を取得する信頼できる方法であるかどうかです。Membership.GetUser().Username を GetUser() として回避しようとすると、匿名ユーザーに対して null が返される場合があります。
私の質問のとおりです。これにより、匿名ユーザーとログイン ユーザーに同じユーザー名が生成されますか?
編集:紛らわしい質問で申し訳ありません。私が見つけようとしているのは、 User.Identity.Name が現在ログインしているユーザーのユーザー名を取得する信頼できる方法であるかどうかです。Membership.GetUser().Username を GetUser() として回避しようとすると、匿名ユーザーに対して null が返される場合があります。
Generateが最適な言葉かどうかはわかりません。Return the same dataという意味だったと思います。
答えは常にではありません。
User.Identity
インスタンスですIIdentity
(通常はGenericIdentityまたはWindowsIdentity )。
Membership.Getuser()
MembershipUserのインスタンスを返します。
これらのメカニズムはどちらもカスタマイズ可能で、技術的にはまったく異なる情報を返すことができます。
編集のために更新
まず、この質問はXY 問題のように聞こえ始めています。実際に解決しようとしていることをお知らせください。
Membership.GetUser()
匿名ユーザーの場合はnull を返す必要がありますが、通常User.Identity.Name
はstring.Empty
匿名ユーザーの場合も返されますが、これも技術的に正しくありません。
通常、推奨される方法は次のようなことです: (ASP.Net MVC 3 テンプレート スターターの から直接取得)
@if(Request.IsAuthenticated)
{
<text>Welcome <b>@Context.User.Identity.Name</b>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else
{
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}