4

我正在使用 VS2013 RC 和 MVC 5 构建一个网站,并尝试使用 formsAuthentification 而不在我的网站上注册永久用户。

我正在发布到我公司的 api 以验证用户名和密码。当这成功返回时,我想发出一个授权 cookie:

System.Web.Security.FormsAuthentication.SetAuthCookie(username, false);

我看到 .ASPXAUTH=... cookie 在此之后被调用。

但是,我无法进入模板的 _LoginPartial.cshtml 页面上的 @if(User.Identity.IsAuthenticated) 或 @if(Request.IsAuthenticated) 块。

这种技术在 MVC 4 中确实对我有用,我正在尝试将其弯曲以适应 MVC 5 的 OWIN 身份验证。

4

4 回答 4

17

我需要在 web.config 中启用表单身份验证

<system.web>
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
...
</system.web>
于 2013-10-14T17:36:12.573 回答
2

如果您不想对抗 MVC5 新身份验证模式(OWIN),您可以在此链接中找到答案

http://www.khalidabuhakmeh.com/asp-net-mvc-5-authentication-breakdown-part-deux#disqus_thread

于 2014-04-02T16:45:41.810 回答
1

我尝试了上述所有解决方案,但解决我问题的方法是在 web.config 中对此进行评论

<modules>
<remove name="FormsAuthentication"/>
</modules>
于 2017-08-02T07:23:52.253 回答
0

那些仍然有这个问题并尝试了以上所有方法的人,我建议尝试在身份验证表单 cookieless="UseCookies" 部分中添加到 Web.Config 文件。就我而言,它运行良好。

<system.web>
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" cookieless="UseCookies" timeout="2880" />
</authentication>
...
</system.web>
于 2016-04-06T13:36:35.910 回答