gpt4 book ai didi

c# - User.Identity.IsAuthenticated 与 WebSecurity.IsAuthenticated

转载 作者:太空狗 更新时间:2023-10-29 17:52:08 24 4
gpt4 key购买 nike

在 MVC4 应用程序中,在 Controller 逻辑中我想检查用户是否已登录。
我应该使用:

User.Identity.IsAuthenticated

或者:

WebSecurity.IsAuthenticated

据我所知,WebSecurity 只是一个包装器。我应该使用它还是 User.Identity 具有不同的功能?

最佳答案

As far as I know WebSecurity is just a wrapper.

没错,两者是一样的。让我们看一下 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 相同,只是存在空值检查,并且属性将返回 false,例如 Identity > 属性为空。

Should I use it or User.Identity has different functionality ?

即使两者完全等同,我也会使用官方 ASP.NET 实现的 User.Identity,因为如果明天您决定用其他东西替换简单的成员资格提供程序,您将拥有很长的路要走代码中要替换的东西更少。

关于c# - User.Identity.IsAuthenticated 与 WebSecurity.IsAuthenticated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com