.net Core 用户登入身份验证

Source:http://www.luofenming.com/show.aspx?id=ART2019091400001

下面是.net Core 配置信息添加

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

using Microsoft.AspNetCore.Authentication.Cookies;

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

using Microsoft.AspNetCore.Http;

using Microsoft.Extensions.DependencyInjection;

 

namespace NetCoreDemo

{

    public class Startup

    {

        public void ConfigureServices(IServiceCollection services)

        {

            services.AddMvc();

            //添加 身份验证 服务

            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).

             AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o =>

             {

                 o.LoginPath = new PathString("/Home/Login");

             });

        }

 

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)

        {//转载请保留原创地址 http://www.luofenming.com/show.aspx?id=ART2019091400001

            if (env.IsDevelopment())

            {

                app.UseDeveloperExceptionPage();

            }

 

            //路由设置默认起始为  指定的Hmoe/Center

            app.UseMvc(routes =>

            {

                routes.MapRoute(

                    name: "default",

                    template: "{controller=Home}/{action=Center}");

            });

            //使用身份验证服务

            app.UseAuthentication();

        }

    }

}

以下是 控制器代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

using Microsoft.AspNetCore.Authentication;

using Microsoft.AspNetCore.Authentication.Cookies;

using Microsoft.AspNetCore.Authorization;

using Microsoft.AspNetCore.Mvc;

using System.Security.Claims;

 

namespace NetCoreDemo.Controllers

{

    public class HomeController : Controller

    {

        public IActionResult Login()

        {

            return Content("Login");

        }

        public IActionResult DoLogin()

        {

            /*

             * 记录cookie之前要对用户的帐号和密码进行验证

             * 如果验证成功则把id和用户名记入 cookie

             * (帐号和密码验证要查询数据库 我在这里就没有去处理,下面默认是验证通过后的代码)

             * 登录以后获取token,

             * 获取传递的token,去用户信息

             *

             */

            string token = "123456";

            string name = "罗分明";

            ClaimsIdentity identity = new ClaimsIdentity("Forms");

 

            identity.AddClaim(new Claim(ClaimTypes.Sid, token));

            identity.AddClaim(new Claim(ClaimTypes.Name, name));

 

            ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(identity);

            HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal);

 

            return Content("登录成功");

        }

 

        /// <summary>

        /// 用户进入内容的之前 先去用户信息进行验证

        /// 如果验证不通过则进入 Home/Login 这个是在添加服务配置时添加的

        /// </summary>

        /// <returns></returns>

        [Authorize(AuthenticationSchemes = CookieAuthenticationDefaults.AuthenticationScheme)]

        public IActionResult Center()

        {

           string sid= User.FindFirstValue(ClaimTypes.Sid);//获取ID

           string mane= User.FindFirstValue(ClaimTypes.Name);//获取用户名

            return Content("Center");

        }

        public IActionResult Logout()

        {

           HttpContext.SignOutAsync().Wait();//注销

           return Content("退出成功");

        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值