我正试图在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="?" />
- 在我的表单中更改操作,使其应为:@Url。操作("MyLoginFunc"、"MyLoginController")