C# 登录系统&;存储

C# 登录系统&;存储,c#,asp.net,asp.net-mvc,user-management,C#,Asp.net,Asp.net Mvc,User Management,我正在用实体框架和mvc编写一个简单的asp.net应用程序 我从一个模板开始,它实际上包括一个简单的帐户创建和登录系统。但是,我希望在数据库中存储帐户详细信息 var user = new ApplicationUser() { UserName = model.UserName }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.

我正在用实体框架和mvc编写一个简单的asp.net应用程序

我从一个模板开始,它实际上包括一个简单的帐户创建和登录系统。但是,我希望在数据库中存储帐户详细信息

var user = new ApplicationUser() { UserName = model.UserName };
var result = await UserManager.CreateAsync(user);
if (result.Succeeded)
{
    result = await UserManager.AddLoginAsync(user.Id, info.Login);
我想问这两件事

  • 我可以使用UserManager类在我自己的数据库结构中存储和管理用户吗
  • 存储用户名/密码的示例(默认.NETMVC应用程序)在哪里

  • 据我所见,或者我的猜测,您正在使用ASP.NETMVC5,这就是脚手架代码

  • 我可以使用UserManager类在我自己的数据库结构中存储和管理用户吗? 是的,您可以使用UserManager对象来存储用户。您要做的第一件事是打开IdentityModels.cs并修改该类,以便在需要时添加任何额外字段:

    public partial class ApplicationUser : IdentityUser
    
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        //Etc
    }
    
  • 存储用户名/密码的示例(默认.NETMVC应用程序)在哪里? 看看你的web.config。我在我的开发机器上拥有的一个示例:

    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20140606091757.mdf;Initial Catalog=aspnet-WebApplication1-20140606091757;Integrated Security=True" providerName="System.Data.SqlClient" />
    
    
    
    这意味着您需要连接到web.config中指定的数据源。在Visual Studio中,单击“显示所有文件”:

    然后,双击mdf文件,打开服务器资源管理器。浏览到AspNetUsers表:


    您可以在数据库中创建asp.net表,如果您愿意,可以从中进行操作。我建议您创建自己的登录系统。为什么?因为您可以使用该登录系统做任何您想做的事情。@gohomerdrunk如果您可以使用Asp成员身份,并且如果您真的需要,您可以创建一个自定义版本,然后做您想做的事情,这似乎是浪费时间。为什么要重新发明轮子?@gohomerdrunk:除非你有一个特殊的商业案例来创建一个定制的身份验证系统,否则这样做是一个非常糟糕的主意。认证很难。这看起来很简单,但要做到正确,使用适当的安全性、加密等是一项艰巨的任务。你可以使用Identity或SimpleMembership之类的东西,每天有数百万人使用它,代码变得难以置信地坚硬,因为有个人团队在处理它,bug被相对快速地压扁。你的系统不会有那个。@DaleFraser:1)你说的“我自己的数据库结构”是什么意思?请具体说明。2) 具有个人身份验证的MVC5项目的项目脚手架就是您的示例。它具有创建用户和设置密码的所有逻辑。你错过了什么/不理解什么?令人惊讶的是,你竟然能得到这么多愚蠢的答案,然后一个乐于助人的人出现了,谢谢。