MVC3 应用程序中的登录页面 - 找不到登录功能



我正试图在MVC应用程序中创建自己的表单身份验证视图,但我的网站似乎找不到登录功能。我首先尝试创建一个regulr视图,并使用ajax调用该函数,但它不起作用,所以我尝试使用表单并提交如下:

<form method="post" action="~/Login/Login_btnClick">
<input type="submit" name="Login" value="Login" />

当然,我也在web配置中声明了它是表单身份验证,并将登录页面设置为链接:

<authentication mode="Forms">
<forms loginUrl="~/Login/Login" defaultUrl="~/Home/index" />
</authentication>
<authorization>
<deny users="?" />
</authorization>

我还使用了位置,以便可以找到我的javascript和css文件。当我拿到时

加载资源失败:服务器的响应状态为400(错误请求)

错误,我试图将Controllers文件夹也添加到位置:

<location path="Controllers">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>

但我还是犯了同样的错误。。。。

知道什么能解决我的问题吗?

感谢

您应该创建一个相应的控制器操作来处理表单提交。例如,如果你有以下表格:

<form method="post" action="/Login/LogOn">
<input type="submit" name="Login" value="Login" />
</form>

那么您应该在Login控制器上创建一个LogOn操作:

[HttpPost]
public ActionResult LogOn()
{
...
}

此外,您在web.config中显示的禁止访问Controllers文件夹的片段也是绝对不必要的。在ASP。NET MVC控制器被编译,当您部署应用程序时,这样的文件夹根本不存在。

除了ASP。NET MVC由[Authorize]属性控制,而不是在web.config中使用<authorization>标记。因此,例如,如果你想保护某个控制器动作,使其不被经过身份验证的用户访问,你只需用以下属性来装饰它:

[Authorize]
public ActionResult Index()
{
...    
}

以下是ASP上的some tutorials。NET MVC站点,说明如何在MVC应用程序中实现身份验证和授权。

此外,当您创建一个新的ASP。NET MVC 3应用程序使用Internet模板已经为您创建了一个AccountController以及相应的视图。您可以使用这个开箱即用的模板来更好地理解这些概念。

谢谢,我得到了解决方案。。。。

我应该做两件事:1.更改

<deny users="?" />

至:

<allow users="?" />
  1. 在我的表单中更改操作,使其应为:@Url。操作("MyLoginFunc"、"MyLoginController")

相关内容

最新更新