什么设置User.Identity.IsAuthentication在 ASP.NET MVC应用程序中



我使用的是Facebook C# SDK,我通过用户的Facebook帐户对用户进行身份验证。一旦我执行了所有检查以"验证"它们,我就会打电话给FormsAuthentication.SetAuthCookie(email, false);

执行该调用是否允许我在操作中访问User.Identity.IsAuthenticated?如果我没有打那个电话呢?

我有一些操作将根据其身份验证状态返回不同的视图,并希望确保User.Identity.IsAuthenticated在 MVC 4 应用程序中是可靠的。

它是注册的 FormsAuthentication HTTP 模块,并在每个请求上执行。当您在 web.config 的<authentication>标记中指定mode="Forms"时,将自动注册此模块。正是这个模块拦截所有 401 响应并自动将用户重定向到 LogOn 页面(有时这不是所需的行为,因为最终结果是 HTTP 状态代码 200)。

所以要回答你的问题:

执行该调用是否允许我访问 User.Identity.Is在我的操作中经过身份验证?如果我 没打那个电话?

不完全是。此调用仅向响应发出表单身份验证 cookie。HTTP模块负责拦截请求,如果此请求包含cookie,它将设置User.Identity

最新更新