网站地图 - XML地图 - 设为首页 - 加入收藏
您的当前位置:主页 > 国内 > 正文

人人中彩:70俯卧撑_asp.net core 的用户注册功能——Identity上手

广东快中彩玩法 www.gklp.net

首先请using这个类库。

using Microsoft.AspNetCore.Identity;

这个类库老牛逼了,首先是包含了一个IdentityUser类。我们可以自己写一个User类继承IdentityUser,这样一来,很多属性我就不用手动建了。如你所:见,我的User没有Emai这个字段,但是IdentityUser有这个字段。

public class User:IdentityUser
    {
        publ,ic string Pass { get; set; }
        public string ,DisplayName { get; set; }
        public。 DateTime RegisteredTime { get; set; }
    }

如何把用户发来的数据变成一个User并且存入数据库?

显然,我他妈得先创建并且连接一个数据库。

创建数据库如果使用VSStudio是贼容易的一件事,只需要打开"视图菜单",然后点开"SQL Server对象资源管理器"。然后你就看到下面这个图。在上面点右键然后添加一个SQL服务器,然后在服务器上点右键查看属性,可以得到链接字符串。

这种简单的操作显然难不住你。下一步把连接字符串放到appsetting.json里面,下面这是一种推荐做法。你当然可以直接粘贴到你的sta!rtUp.cs文件中。不过谁会这么做呢?

"ConnectionStrings": {
    "DefaultConnection": "这里就是你的连接字符串"
}

下一步要用这个连接字符串连上你的数据库。注意带颜色的字。很JB重要。

        // This method gets called by the runtime. Use this method to add services to the container.
        public void Configur!eServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential co:okies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
        // 看到了么,下面这行代码用来连接数据库。这是EF提供的方法。
            services.AddDbContext<AppContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));?
        // 在这里指定你的User类,然后再指定你的数据库。这是Identity类库提供的方法。
            services.AddDefaultIdentity<Use。r>().AddEntityFrameworkStores<AppContext>();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();
       // 这里必须用上。
            app.UseAuthentication();
            app.UseMvc();
        }

经过上面的配置,controller里面就可以注入很多方法。这下你看起来牛逼多了。

数据库连上了,接下来是真枪实弹的创建一个用户,是时候写controller了。

建一个随便什么controller吧。我建的是UserController,你可以随你的便。关我屌事呢?

在controller的构造函数里面注入一个UserManager的类,这个类也是Identity提供的。

public class UserController : ControllerBase
    {
        private readonly UserManager<User> _userManager;

        public UserController,(UserManager<User> userManager)
        {
            _userManager = userManager;
        }
......

这个UserManager有贼多的方法,这里我只用一个,createAsync方法。

 // POST: api/User
 [HttpPost]
 public async Task PostAsync([FromBody]User _user)
 {   
     //先创建一个user,不包括密码
var user = new User { Email = _user.Email , UserName = _user.UserName};
//将user和密码绑定入库 var result = await _userManager.CreateAsync(user, _user.Pass); ?
if (result.Succeeded) { Console.Write(,"注册成功!"); } }

用Postman模拟一个请求。你注意到那个FromBody了吗?这个标记可以把发过来的json请求解析成User格式。

这里有一个新手大坑。如果你的[FromBody]User _user这里写的是[FromBody]string _user, 你就不能用json格式发?;岜ㄊ裁磈son解析错误。

发送请求以后去看看你的数据库吧。已经创建好了一个User对象并且存到了你的数据库里。

这么多字段都是来自IdentityUser类,其中只有那个pass字段是我自己UserClass里面的。

当前文章://www.gklp.net/tfpc1/791271_207917.html

发布时间:2018-12-17 00:24:57


注:凡本网注明来源非本站的作品,均转载自其它媒体,并不代表本网赞同其观点和对其真实性负责。
本站致力于帮助文章传播,希望能够建立合作关系。
若有任何不适的联系以下方式我们将会在24小时内删除。联系方式:
Copyright © 2018 百胜资讯网 版权所有