【发布时间】:2011-07-09 17:27:59
【问题描述】:
我首先要说:我不太了解会员提供程序在 ASP.NET 中是如何工作的,我正在努力更好地了解它们。
我刚刚在 VS2010 中创建了一个新的 MVC3 解决方案。我可以在 ASP.NET 的开发服务器中运行它,而且效果很好——真的很酷。但我有点困惑的是表单身份验证是如何在 ASP.NET 开发服务器中工作的。
考虑AccountController.cs的库存版本:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.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.");
}
}
它使用Membership 类来验证通过 MVC3 网站注册的用户名和密码。太好了,我明白了,但是……这到底是如何工作的?尤其是在 ASP.NET 开发服务器中?
是否有一个数据库可以让我以某种方式打开并查看我输入的测试信息?它在哪里?
就像我说的,我并不真正理解它是如何工作的——如果我无法为 ASP.NET 开发服务器弄清楚它,那么我肯定无法在 IIS 中弄清楚它。我已经阅读了 Microsoft 的 Introduction to Membership 文档,但我觉得它在解释它是如何在较低级别上工作时确实做得不好;似乎只是说会员资格是“内置的”——好吧,这很酷,但故事必须比这更多,对吧?
【问题讨论】:
标签: asp.net-mvc-3 asp.net-membership