我一直关注这里的教程 -
构建ASP.NET Web应用程序。
这里发生的是
但是,与数据层相对应的所有其他表都是在一个名为“wingtiptoys”的单独数据库中创建的,并且与他们碰巧正在制作的玩具店产品相关的所有数据都存储在那里的表中。
因此,我发现很难在这两个数据库的表之间交换信息。
在我自己的应用程序中,表实际上有成员信息,我需要将它们与ASP.NET创建的成员表连接起来。
就此而言,我完全不知道从登录页面到默认用户表的机制是如何工作的。我只是发现默认数据库中有一个ASPNetUsers表,它有测试我的应用程序时用来登录的玩具用户信息,但是在代码中找不到任何告诉他们存储的登录/注册页面的地方该名称表中的用户信息。
简而言之,如何创建获取默认数据库中的成员表(默认情况下为ASP.NET提供的功能)以与产品和其他表进行交互,这些表位于为数据创建的单独数据库中应用程序层。
一个选项是在后者中创建一个成员表,并将ETL中的数据从默认DB到成员表一些如何。但是,这似乎效率低下。
此外,是否有默认方法来访问当前登录用户的ID?
答案 0 :(得分:1)
要回答您的第一个问题:您只需使用DbContext
(ApplicationDbContext
的不同实例,以及您将DbContext
命名为“wingtiptoys”的任何内容。
对于您的第二个问题:在Controller的上下文中,可以使用System.Web.HttpContext.User.Identity.Name
找到用户的用户名。在模型中,您必须使用System.Web.HttpContext.Current.User.Identity.Name
。给定用户的用户名,找到UserId:
db.Users.Single(m => m.Username == User.Identity.Name).Id;