Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于用户id修改数据库_C#_Entity Framework_Asp.net Mvc 4_Entity Framework 5 - Fatal编程技术网

C# 基于用户id修改数据库

C# 基于用户id修改数据库,c#,entity-framework,asp.net-mvc-4,entity-framework-5,C#,Entity Framework,Asp.net Mvc 4,Entity Framework 5,我真的看了,谷歌,这个网站,几天来,尝试了很多不同的东西,但我找不到答案 所以,我正在尝试创建一个web应用程序,它将在购买后显示客户信息。我正在使用VS2012 express和C#,我决定使用MVC4,主要是因为有一个关于ASP.NET的教程非常接近我想要做的。对我的选择的任何评论都不是被要求的,但也不是不受欢迎的 因此,管理员将在每天结束时输入所有销售信息。我们在销售协议中将客户电话号码记录为账号,所以我的想法是,为了简单起见,也可以将客户电话号码用作登录web应用程序的方式。同样,当客户

我真的看了,谷歌,这个网站,几天来,尝试了很多不同的东西,但我找不到答案

所以,我正在尝试创建一个web应用程序,它将在购买后显示客户信息。我正在使用VS2012 express和C#,我决定使用MVC4,主要是因为有一个关于ASP.NET的教程非常接近我想要做的。对我的选择的任何评论都不是被要求的,但也不是不受欢迎的

因此,管理员将在每天结束时输入所有销售信息。我们在销售协议中将客户电话号码记录为账号,所以我的想法是,为了简单起见,也可以将客户电话号码用作登录web应用程序的方式。同样,当客户端登录到站点查看数据库时,数据库将自动过滤,以便特定客户端只能看到其事务

我遵循的教程是

我发现这是需要应用过滤器的地方,但我在这样做时遇到了很多麻烦。 控制器名为“MainController” 数据库名为“Main”,表名为“Mains” “AccountNumber”是数据库中应与当前用户Id匹配的字段

public ActionResult Index()
{
    return View(db.Mains.ToList());
}

据我所知,我必须将[InitializeSimpleMembership]放在上面,然后获取用户ID,然后将其定义为过滤器。

首先,您应该选择以下方式之一:

1) 将登录名和用户信息保存在单独的表中,并让SimpleMembership(SM)执行其默认任务

2) 使用现有的表来存储用户信息,并告诉SM哪一个表适用

方法一:

要处理这种方法,您只需手动创建用户(我认为您也是这样),并在负责创建客户的action方法中添加一行额外内容:

[HttpPost]        
public ActionResult Create(Customer model)
{
    if (ModelState.IsValid)
    {            
        db.Customers.Add(model);
        try
        {
            db.SaveChanges();

            // here it is ...
            WebSecurity.CreateUserAndAccount(model.Phone, model.Password);
        }
        catch 
        {
            insertError = true;
        }
        // .. Other codes ...
} 
现在,您的客户只需将其电话号码作为用户名和密码登录到该网站即可

要检索与当前登录到站点的特定用户相关的项目,只需使用以下查询:

public ActionResult Index()
{
    return View(db.Mains.Where(m => m.AccountNumber == User.Identity.Name)
        .ToList());
}

如果您还需要第二种方法,请告诉我更新我的答案,并将其放在此处

似乎您是MVC新手。请下载示例项目并查看它们是如何完成的。您是否尝试过查看(db.Main.Where(x=>x.AccountNumber==givenId.ToList()?