MVC4 アプリのコントローラー ロジックで、ユーザーがログインしているかどうかを確認したい。
次を使用する必要 があります。
User.Identity.IsAuthenticated
または:
WebSecurity.IsAuthenticated
私の知る限り、WebSecurity
単なるラッパーです。私はそれを使用する必要がありますか、それともUser.Identity
別の機能を持っていますか?
MVC4 アプリのコントローラー ロジックで、ユーザーがログインしているかどうかを確認したい。
次を使用する必要 があります。
User.Identity.IsAuthenticated
または:
WebSecurity.IsAuthenticated
私の知る限り、WebSecurity
単なるラッパーです。私はそれを使用する必要がありますか、それともUser.Identity
別の機能を持っていますか?
私の知る限り、WebSecurity は単なるラッパーです。
そうです、どちらも同じです。WebSecurity.IsAuthenticated
プロパティの実装方法を見てみましょう。
public static bool IsAuthenticated
{
get
{
return Request.IsAuthenticated;
}
}
WebSecurity.Request
それでは、静的プロパティがどのように実装されているかを見てみましょう。
internal static HttpRequestBase Request
{
get
{
return Context.Request;
}
}
WebSecurity.Context
最後に、静的プロパティがどのように実装されているかを見てみましょう。
internal static HttpContextBase Context
{
get
{
return new HttpContextWrapper(HttpContext.Current);
}
}
ご覧のとおり:
WebSecurity.IsAuthenticated
以下と同じです:
new HttpContextWrapper(HttpContext.Current).Request.IsAuthenticated
Context.User.Identity.IsAuthenticated
これは、 null チェックがあり、たとえばプロパティが null の場合にプロパティが false を返すというわずかな違いを除いて同じIdentity
です。
私はそれを使用する必要がありますか、それとも User.Identity には別の機能がありますか?
2 つが厳密に同等でUser.Identity
あっても、公式の ASP.NET 実装である を使用します。単純なメンバーシップ プロバイダーを別のものに置き換えることにした場合、コード内で置き換えるものがはるかに少なくなるからです。