以下是“ASP.NET MVC实现登录后跳转到原界面”的完整攻略,包括实现登录功能、保存原界面URL、跳转到原界面等内容。
实现登录功能
在ASP.NET MVC中实现登录功能,您需要完成以下步骤:
- 创建一个登录页面,包括用户名和密码输入框、登录按钮等控件。
- 创建一个控制器,用于处理登录请求。
- 在控制器中编写代码,验证用户输入的用户名和密码是否正确。
- 如果验证通过,将用户信息保存到Session中,然后跳转到原界面。
以下是一个示例,演示如何在ASP.NET MVC中实现登录功能:
// LoginController.cs
public class LoginController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string username, string password, string returnUrl)
{
if (username == "admin" && password == "123456")
{
Session["username"] = username;
if (!string.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ViewBag.ErrorMsg = "用户名或密码错误";
return View();
}
}
}
保存原界面URL
在ASP.NET MVC中,您可以使用returnUrl
参数来保存原界面URL。当用户访问需要登录的页面时,您可以将当前页面的URL作为returnUrl
参数传递给登录页面。如果用户登录成功,您可以将returnUrl
参数的值作为跳转目标。
以下是一个示例,演示如何保存原界面URL:
// HomeController.cs
public class HomeController : Controller
{
[Authorize]
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult About()
{
return View();
}
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
}
<!-- Login.cshtml -->
@using (Html.BeginForm("Index", "Login", new { returnUrl = ViewBag.ReturnUrl }, FormMethod.Post))
{
<div>
<label>用户名:</label>
<input type="text" name="username" />
</div>
<div>
<label>密码:</label>
<input type="password" name="password" />
</div>
<div>
<input type="submit" value="登录" />
</div>
}
跳转到原界面
在ASP.NET MVC中,您可以使用Redirect
方法将用户重定向到原界面。如果用户在访问需要登录的页面时,未登录或登录已过期,您可以将用户重定向到登录页面,并将当前页面的URL作为returnUrl
参数传递给登录页面。如果用户登录成功,您可以将returnUrl
参数的值作为跳转目标。
以下是一个示例,演示如何跳转到原界面:
// LoginController.cs
public class LoginController : Controller
{
[AllowAnonymous]
public ActionResult Index(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
[HttpPost]
[AllowAnonymous]
public ActionResult Index(string username, string password, string returnUrl)
{
if (username == "admin" && password == "123456")
{
FormsAuthentication.SetAuthCookie(username, false);
if (!string.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ViewBag.ErrorMsg = "用户名或密码错误";
return View();
}
}
}
// HomeController.cs
public class HomeController : Controller
{
[Authorize]
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult About()
{
return View();
}
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
[HttpPost]
[AllowAnonymous]
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
}
<!-- Login.cshtml -->
@using (Html.BeginForm("Index", "Login", new { returnUrl = ViewBag.ReturnUrl }, FormMethod.Post))
{
<div>
<label>用户名:</label>
<input type="text" name="username" />
</div>
<div>
<label>密码:</label>
<input type="password" name="password" />
</div>
<div>
<input type="submit" value="登录" />
</div>
}
现在,您已经成功地在ASP.NET MVC中实现了登录功能,并可以跳转到原界面了。