Asp.net mvc 如何在ASP.NET MVC中创建自己的登录应用程序

Asp.net mvc 如何在ASP.NET MVC中创建自己的登录应用程序,asp.net-mvc,visual-studio-2008,Asp.net Mvc,Visual Studio 2008,我随后使用ASP.NET MVC创建了一个示例登录应用程序 我已经创建了数据库,并将其添加到了教程中提到的服务器资源管理器中。我还修改了AccountController.cs文件,并添加了以下代码,而不是默认的登录方法 public ActionResult Login(string username, string password, bool? rememberMe) { ViewData["Title"] = "Login"; if (Reques

我随后使用ASP.NET MVC创建了一个示例登录应用程序

我已经创建了数据库,并将其添加到了教程中提到的服务器资源管理器中。我还修改了AccountController.cs文件,并添加了以下代码,而不是默认的登录方法

public ActionResult Login(string username, string password, bool? rememberMe)
    {
        ViewData["Title"] = "Login";
        if (Request.HttpMethod != "POST")
        {
            return View();
        }
        // Basic parameter validation
        List<string> errors = new List<string>();
        if (String.IsNullOrEmpty(username))
        {
            errors.Add("You must specify a username.");
        }

        if (errors.Count == 0)
        {

            LinkMVC.Models.LinkManagerDataContext lm = new LinkMVC.Models.LinkManagerDataContext();
            Nullable<int> userid = null;
            lm.fm_AuthenticateUser(username, password, ref userid);

            if (userid > 0)
            {

                FormsAuth.SetAuthCookie(username, rememberMe ?? false);
                return RedirectToAction("Index", "Home");
            }
            else
            {
                errors.Add("The username or password provided is incorrect.");
            }
        }


        // If we got this far, something failed, redisplay form
        ViewData["errors"] = errors;
        ViewData["username"] = username;
        return View();
    }
public ActionResult登录(字符串用户名、字符串密码、bool?rememberMe)
{
ViewData[“标题”]=“登录”;
if(Request.HttpMethod!=“POST”)
{
返回视图();
}
//基本参数验证
列表错误=新列表();
if(String.IsNullOrEmpty(用户名))
{
添加(“您必须指定用户名”);
}
如果(errors.Count==0)
{
LinkMVC.Models.LinkManagerDataContext lm=新的LinkMVC.Models.LinkManagerDataContext();
可为null的userid=null;
lm.fm_AuthenticateUser(用户名、密码、参考用户ID);
如果(用户ID>0)
{
FormsAuth.SetAuthCookie(用户名,rememberMe??false);
返回重定向到操作(“索引”、“主页”);
}
其他的
{
错误。添加(“提供的用户名或密码不正确”);
}
}
//如果我们走到这一步,有些东西失败了,重新显示形式
ViewData[“错误”]=错误;
ViewData[“用户名”]=用户名;
返回视图();
}
我无法解决两个错误:

LinkMVC.Models.LinkManagerDataContext lm=新的LinkMVC.Models.LinkManagerDataContext()

它说名称空间“模型”的类型在名称空间LinkMVC中不存在

FormsAuth.SetAuthCookie(用户名,rememberMe??false)

这里它表示setAuthCookie没有扩展方法

有人能告诉我我错过了什么吗


谢谢

我认为这门课应该是为了认证而不是为了考试


该示例来自2008年,正在使用ASP.NET MVC preview 4,因此可能类名已更改。

您的类的名称空间是什么?是LinkMVC.Models吗?FormsAuth的定义在哪里?我认为应该是FormsAuthentication。@Dallas:名称空间是LinkMVC.Models,我还没有定义FormsAuthanywhere@Dallas:是的,这是形式验证..所以第二个错误解决了..是的,对!!请参阅我的项目名称为LinkMVC..,命名空间为LinkMVC.Controllers,请参阅我在AccountController.cs文件中看到的内容,请参阅@samich的注释:-dbml文件是否位于LinkMVC项目的models文件夹中?展开LinkManager.dbml并打开名为LinkManager.cs的文件以查看命名空间。是的,也删除了该错误,名称空间是LinkMVC.Scripts.Models..但是什么是“fm_AuthenticateUser”?我还没有创建任何类似的方法?我必须在哪里创建它以及如何创建它?我认为它是一个存储过程。数据库是在作者的linq to sql主题中创建的