下面是我尝试过的一些代码。它不起作用;在“登录”之后,用户不会被重定向到主页/索引页面,但登录页面只是重新加载。
Web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" />
</authentication>
...
<defaultDocument>
<files>
<add value="~/Account/Login"/>
</files>
</defaultDocument>控制器/AccountController.cs:
public class AccountController : Controller
{
//
// GET: /Account/Login
public ActionResult Login()
{
return View();
}
}视图/帐户/Login.aspx:
<asp:Login ID="login" runat="server" DestinationPageUrl="~/Views/Home/Index.aspx">
...
</asp:Login>发布于 2012-11-06 13:44:47
您使用的是ASP.NET MVC4的internet模板吗?如果没有,我建议你用互联网模板创建一个新的ASP.NET MVC项目,打开帐户控制器并查看一下方法。
正如@user1所说的那样,可以这样做的一种方法是使用
FormsAuthentication.SetAuthCookie(username, true);
return Redirect(returnurl);但正如您所说,您使用的是ASP.NET MVC4,您应该使用WebSecurity类。
例如:
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");大部分工作是使用WebSecurity帮助器的以下方法和属性完成的:
进一步阅读:
发布于 2012-11-06 06:27:48
我怀疑您没有设置forms身份验证cookie,这就是重定向不起作用的原因。理想情况下,在您的登录方法中,您将使用某些逻辑验证用户名和密码,当您确信用户是合法的时,您必须设置forms身份验证cookie,然后重定向用户。
FormsAuthentication.SetAuthCookie(username, true);
return Redirect(returnurl);如果不设置身份验证cookie,重定向将不起作用,因为请求仍将被视为未经身份验证的请求,并且用户将被发送回登录页面。您可以在此处找到有关表单登录的更多信息
http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.71%29.aspx
https://stackoverflow.com/questions/13241319
复制相似问题