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 実装である を使用します。単純なメンバーシップ プロバイダーを別のものに置き換えることにした場合、コード内で置き換えるものがはるかに少なくなるからです。