3

我开始使用 ASP.NET MVC 5 预览版,到目前为止一切都很好(我只能推荐它)。

但是,我想知道在哪里可以为内置属性设置登录网址[Authorize]。我已将 移动AccountController到一个区域,因此登录操作的路径不再是/Account/Loginbut MyArea/Account/Login,它被[Authorize]-Attribute 忽略,这反过来意味着,每当导航到具有属性集的控制器或操作时,一个被重定向到错误的路径/Account/Login

4

3 回答 3

16

当使用新的 OWIN 表单身份验证(与旧的 ASP.NET 表单身份验证相反)时,这将在Startup类中设置。在默认模板中,它App_Start/Startup.Auth.cs位于ConfigureAuth方法中:

public void ConfigureAuth(IAppBuilder app)
{
   app.UseCookieAuthentication(new CookieAuthenticationOptions
   {
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
      LoginPath = new PathString("/Account/Login")
   });
   app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
}
于 2013-12-28T19:57:59.733 回答
10

寻找web.config这样的部分:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

更改该loginUrl值以指向您更新的登录页面。

于 2013-07-17T19:57:03.817 回答
0

在 VS2015 的 .net MVC 5 中尝试了许多技术之后,我最终来到了这里。

它很难理解,但非常简单。我们在表单 loginURL 中编码的任何内容后来都被删除或替换为 web.config 本身并转到 Account/Login。Web.Config 中的这一行就是这样做的。

<remove name="FormsAuthentication"/> 

在 web.config 中注释掉该行,然后它不会自动转到“帐户/登录”。我在 VS2015 中进行了测试,它就像一个魅力。:)

于 2020-04-15T13:40:44.373 回答