Asp.net mvc 4 在ASP.NET MVC 4中使用创建的登录页进行身份验证

Asp.net mvc 4 在ASP.NET MVC 4中使用创建的登录页进行身份验证,asp.net-mvc-4,Asp.net Mvc 4,我想使用我自己的登录页面进行身份验证,但它给了我这个错误 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确 请求的URL:/帐户/密码锁 有人知道为什么吗?这是我的代码,我创建了一个名为PasswordLock.aspx的新页面,其中包含一个登录工具。一切都很好地与原始登录表单,但不是我自己的 <authentication mode="Forms"> <forms loginUrl="~/Acc

我想使用我自己的登录页面进行身份验证,但它给了我这个错误

描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

请求的URL:/帐户/密码锁

有人知道为什么吗?这是我的代码,我创建了一个名为PasswordLock.aspx的新页面,其中包含一个登录工具。一切都很好地与原始登录表单,但不是我自己的

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

虽然这会很好

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


感谢在ASP.NET MVC中,您的URL不会映射到文件;它们映射到行动。因此,在
~/Accounts/PasswordLock.aspx
上有一个文件是没有帮助的。您需要的是该URL的路由。路由通常设置在名为RouteConfig的文件中,位于App_Start文件夹下,由Global.asax中的
Application_Start()
方法执行。通常的默认路由如下所示:

routes.MapRoute(
    name: "default",
    routeTemplate: "{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional });
这意味着进入www.example.com/Accounts/PasswordLock的URL将映射到名为
accountscocontroller
的控制器,以及该控制器上名为
PasswordLock
的方法。此方法应返回一个
视图
,默认情况下该视图将被称为
PasswordLock.cshtml
。请注意,新的Razor v2视图引擎使用
.cshtml
文件,而不是
.aspx


这是ASP.NETMVC编程的基础;听起来你好像是在盲目地插手。我强烈建议您阅读上的教程,尤其是上的教程。

您是否定义了
密码锁
操作?它是用异名装饰的吗?你需要MVC中的一个动作,而不仅仅是一个视图。@BradChristie对不起,Brad,我是MVC的新手,你能解释一下吗?thanks@yzwboy路由和控制器操作是ASP.NET MVC的基本部分。在你尝试写任何东西之前,你应该真正理解这些。上的教程是一个很好的开始。@cadrell0谢谢,是的,我很匆忙…我对它的结构有点想法,但从来没有实际使用过它,我现在得到了它,再次感谢你们的帮助,经过更多的研究和实验,我让视图部分开始工作,但是有没有像.aspx中用于RazorCSHTML的登录工具这样的工具呢?或者您必须通过编码自己设置自定义视图吗?您几乎必须构建它。MVC在程序员和实际HTML之间几乎没有任何区别,因此对于登录页面,您将构建一个表单来执行标准HTTP POST操作以提交各种值,然后您将需要服务器上的一个方法来接收这些值,并执行逻辑以确定它们是否被允许进入。