gpt4 book ai didi

database - ASP.net MVC 3 Forms Authentication 项目如何连接到数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:04 25 4
gpt4 key购买 nike

我目前有一个已填充的数据库、一个 .NET 1.1 网站和用 MVC 3 重写它的任务。我已经使用 Forms Authentication 创建了 MVC 项目,将我的数据库连接到该项目,但不知道访问其中信息的最佳方式。

我看到了这个链接:http://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx?ppud=4 , 但我不确定这是否是我在这种情况下要寻找的。

我今天的目标是让登录页面正常工作,这样我就可以使用管理员帐户登录并查看网站的主页。我仍然是 MVC 的新手,并且倾向于过于广泛地寻找答案。希望我遗漏了一些明显的东西。

最佳答案

您不需要立即编写自定义成员资格提供程序。你可以在稍后阶段这样做。如果您只想让您的应用程序与登录屏幕一起工作,您所要做的就是修改默认 AccountController 中的登录方法:

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}

// If we got this far, something failed, redisplay form
return View(model);
}

然后您只需要编写一个 ValidateUser 方法来查询您的数据库并验证用户是否存在:

private bool ValidateUser(string username, string password)
{
// TODO: query your db here and verify if the account exists
}

稍后您可以编写自定义成员资格提供程序以避免将数据库访问逻辑混合到您的 Controller 中并分离关注点。这是一个关于编写自定义成员(member)提供程序的精彩视频:http://www.asp.net/web-forms/videos/how-do-i/how-do-i-create-a-custom-membership-provider

您不需要覆盖 MembershipProvider 类的所有方法,只需覆盖您使用的那些方法。一开始,您可以仅覆盖 ValidateUser 方法,以允许用户使用您的自定义数据表在您的网站中进行身份验证:

public class MyMembershipProvider : MembershipProvider
{
public override bool ValidateUser(string username, string password)
{
// put your data access logic here
}

...
}

关于database - ASP.net MVC 3 Forms Authentication 项目如何连接到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com