繁体   English   中英

如何使用ASP.NET MVC4登录?

[英]How to login using ASP.NET MVC4?

以下是我尝试的一些代码。 这是行不通的; 在“登录”之后,用户不会被重定向到主页/索引页面,但登录页面只是重新加载。

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>

您使用的是ASP.NET MVC 4的Internet模板吗? 如果没有,我建议您使用Internet模板创建一个新的ASP.NET MVC项目,打开帐户控制器并查看和方法。

正如@ user1正确地说,你可以这样做的方法就是使用

 FormsAuthentication.SetAuthCookie(username, true);
 return Redirect(returnurl);

但正如您所说,您使用的是ASP.NET MVC 4.您应该使用WebSecurity Class。

例如 :

WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");

大多数工作都是使用WebSecurity助手的以下方法和属性完成的:

进一步阅读:

我怀疑你没有设置表单身份验证cookie,这就是重定向不起作用的原因。 理想情况下,在您的登录方法中,您将使用某些逻辑验证用户名和密码,当您确信用户是合法的时,您必须设置表单身份验证cookie然后重定向用户

FormsAuthentication.SetAuthCookie(username, true);
return Redirect(returnurl);

如果您未设置身份验证cookie,则重定向将不起作用,因为请求仍将被视为未经身份验证的请求,并且用户将被发送回登录页面。 您可以在此处找到有关表单登录的更多信息

http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.71%29.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM