-3

私の質問のとおりです。これにより、匿名ユーザーとログイン ユーザーに同じユーザー名が生成されますか?

編集:紛らわしい質問で申し訳ありません。私が見つけようとしているのは、 User.Identity.Name が現在ログインしているユーザーのユーザー名を取得する信頼できる方法であるかどうかです。Membership.GetUser().Username を GetUser() として回避しようとすると、匿名ユーザーに対して null が返される場合があります。

4

1 に答える 1

5

Generateが最適な言葉かどうかはわかりません。Return the same dataという意味だったと思います。

答えは常にではありません

User.IdentityインスタンスですIIdentity(通常はGenericIdentityまたはWindowsIdentity )。

Membership.Getuser()MembershipUserのインスタンスを返します。

これらのメカニズムはどちらもカス​​タマイズ可能で、技術的にはまったく異なる情報を返すことができます。

編集のために更新

まず、この質問はXY 問題のように聞こえ始めています。実際に解決しようとしていることをお知らせください。

Membership.GetUser()匿名ユーザーの場合はnull を返す必要がありますが、通常User.Identity.Namestring.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") ]
}
于 2013-05-06T05:09:45.620 に答える