Exemple #1
0
 public MessageModel <string> GetToken()
 {
     return(new MessageModel <string>(JWTTokenService.GetToken(new TokenModelJwt()
     {
         Uid = 1, Name = "张三", Role = "admin"
     })));
 }
    public static void Main()
    {
        // Get User
        var userRepository = new UserLocalRepository();
        var users          = userRepository.GetAllUsers();
        var admin          = users.First(u => u.Role.Id == (int)USER_ROLES.Moderator);

        #region CheckJWT

        // Create service
        string sekcretKey   = Guid.NewGuid().ToString();
        var    tokenService = new JWTTokenService(sekcretKey);

        // Encode
        string token = tokenService.GenerateJWTToken(admin?.Id);

        // Decode
        AccessToken accessToken = tokenService.ValidateJWTToken(token);

        // Show
        System.Console.WriteLine(accessToken);

        #endregion

        #region CheckRole

        UserRoleMiddleware.Invoke(admin, typeof(AdminController), () => new AdminController().SayHello());

        #endregion
    }
 protected GenericUserService(ApplicationContext applicationContext, JWTTokenService tokenService, IDataProtectionProvider provider, IStringLocalizer localizer)
 {
     this.applicationContext = applicationContext;
     this.tokenService       = tokenService;
     this.dataProtector      = provider.CreateProtector("GenericUserService");
     this.localizer          = localizer;
 }
 protected BaseUsersService(
     ApplicationContext dbContext, JWTTokenService jWTTokenService, PasswordService passwordService, IStringLocalizer localizer)
 {
     _dbContext       = dbContext;
     _JWTTokenService = jWTTokenService;
     _passwordService = passwordService;
     _localizer       = localizer;
 }
        public UserServicesMethods()
        {
            var testContext = TestContextUtils.CreateInMemoryDbContext();

            userRepo = new AppUserRepository(testContext);
            var tokenService = new JWTTokenService("jfghbk@on345_38*b6b@ac8asdffafg5774a&%67454378*&092mdf", 5);

            userService = new UserService(userRepo, tokenService);
        }
Exemple #6
0
 public void Init()
 {
     _JWTTokenService = new JWTTokenService();
     _login           = new LoginQuery
     {
         Login    = "******",
         Password = "******"
     };
 }
Exemple #7
0
 public CustomerService
 (
     ApplicationContext dbContext,
     PasswordService passwordService,
     JWTTokenService JWTTokenService,
     IStringLocalizer localizer
 )
     : base(dbContext, JWTTokenService, passwordService, localizer)
 {
 }
Exemple #8
0
 public SmartDeviceService
 (
     ApplicationContext dbContext,
     PasswordService passwordService,
     JWTTokenService JWTTokenService,
     IStringLocalizer localizer,
     SmartDeviceHubService smartDeviceHubService
 )
     : base(dbContext, JWTTokenService, passwordService, localizer)
 {
     _smartDeviceHubService = smartDeviceHubService;
 }
Exemple #9
0
        public async Task <MessageModel <object> > LoginAsync(User user)
        {
            string Key        = $"errorcount_{user.UserNumber}";
            int    errorcount = cache.GetValue(Key).ToInt();

            if (errorcount >= 10)
            {
                return(new MessageModel <object>(string.Empty, false, "失败次数过多,请五分钟后再试"));
            }
            var ipaddress   = HttpContext.Connection.RemoteIpAddress.ToIPv4String();
            var userAgent   = HttpContext.Request.Headers["User-Agent"];
            var agent       = new UserAgent(userAgent);
            var Browser     = $"{agent.Browser?.Name} {agent.Browser?.Version}";
            var OS          = $"{agent.OS?.Name} {agent.OS?.Version}";
            var Md5Password = MD5Helper.MD5Encrypt32(user.Password);
            var User        = (await services.Query(p => p.UserNumber == user.UserNumber && p.Password == Md5Password)).FirstOrDefault();
            await ioperatingLogServices.Add(new operatingLog
            {
                Operating = "登录",
                Date      = DateTime.Now,
                UserName  = user.UserNumber,
                ip        = ipaddress,
                Browser   = Browser,
                OS        = OS,
                state     = User != null && User.UserState == 200 ? 200 : 500,
                Details   = User != null && User.UserState == 200 ? "通过登录授权" : "未通过登录授权"
            });

            if (User != null && User.UserState == 200)
            {
                requirement.Permissions = new List <Models.ViewModels.PermissionItemView>();
                if (errorcount != 0)
                {
                    cache.Remove(Key);
                }
                User.Password = string.Empty;
                return(new MessageModel <object>(new { user = User, Token = JWTTokenService.GetToken(new TokenModelJwt()
                    {
                        Uid = User.Id, Name = User.showName, Role = User.PowerName
                    }) }));
            }
            else
            {
                errorcount++;
                cache.Set(Key, errorcount, TimeSpan.FromMinutes(5));
                return(new MessageModel <object>(null, false, (User != null && User.UserState == 500) ? "账户已冻结" : "账户或密码错误,登录失败"));
            }
        }
 public GetTokenForUserQueryHanlder(JWTTokenService tokenService, GenericRepository <TblLogins> loginsRepository)
 {
     _tokenService     = tokenService;
     _loginsRepository = loginsRepository;
 }
 public DoctorService(ApplicationContext applicationContext, JWTTokenService tokenService, IDataProtectionProvider provider, IStringLocalizer localizer)
     : base(applicationContext, tokenService, provider, localizer)
 {
 }
Exemple #12
0
 public UserController(JWTTokenService jWTTokenService, UserService userService, IConfiguration configuration)
 {
     this.jWTTokenService = jWTTokenService;
     this.userService     = userService;
     this.configuration   = configuration;
 }
Exemple #13
0
 public DeviceService(ApplicationContext applicationContext, JWTTokenService tokenService, IDataProtectionProvider provider, IStringLocalizer localizer, DeviceHubService deviceHubService)
     : base(applicationContext, tokenService, provider, localizer)
 {
     this.deviceHubService = deviceHubService;
     protector             = provider.CreateProtector("DeviceService");
 }
Exemple #14
0
 private void JwtBearerConfig(JwtBearerOptions opt)
 {
     opt.TokenValidationParameters = JWTTokenService.StandardValidationParameters(Configuration);
 }
        public async Task Invoke(HttpContext context)
        {
            if (!context.WebSockets.IsWebSocketRequest)
            {
                return;
            }

            var socket = await context.WebSockets.AcceptWebSocketAsync();

            string token    = context.Request.Query["token"];
            string userName = string.Empty;
            string UserId   = string.Empty;

            if (!string.IsNullOrEmpty(token) && token != "null")
            {
                TokenModelJwt tokenModelJwt = JWTTokenService.SerializeJwt(token);
                userName = tokenModelJwt.Name;
                UserId   = tokenModelJwt.Uid.ToString();
            }
            else
            {
                var Json = new WebSocketUpdateResponse <string>()
                {
                    state = 200,
                    type  = 100
                }.ToJson();
                await _webSocketHandler.SendMessageAsync(socket, Json);

                await Task.Delay(1000);

                await connectionManager.CloseSocket(socket);

                return;
            }
            var websocketItem = connectionManager.GetSocketByModel(UserId);

            if (websocketItem != null)
            {
                var Json = new WebSocketUpdateResponse <string>()
                {
                    state = 200,
                    type  = websocketItem.token != token ? 500 : 100
                }.ToJson();
                await _webSocketHandler.SendMessageAsync(websocketItem.socket, Json);

                await Task.Delay(1000);

                await connectionManager.RemoveSocket(UserId);
            }
            var ipaddress = context.Connection.RemoteIpAddress.ToIPv4String();
            var userAgent = context.Request.Headers["User-Agent"];
            var agent     = new UserAgent(userAgent);
            var Browser   = $"{agent.Browser?.Name} {agent.Browser?.Version}";
            var OS        = $"{agent.OS?.Name} {agent.OS?.Version}";
            var webSocket = new WebSocketModel()
            {
                connectstate = true,
                connectTime  = DateTime.Now,
                Guid         = UserId,
                socket       = socket,
                userName     = userName,
                Browser      = Browser,
                ip           = ipaddress,
                OS           = OS,
                token        = token
            };

            _webSocketHandler.OnConnectedAsync(webSocket);
            await Receive(socket, async (result, buffer) =>
            {
                if (result.MessageType == WebSocketMessageType.Text)
                {
                    await _webSocketHandler.ReceiveAsync(token, socket, result, buffer);
                    return;
                }

                else if (result.MessageType == WebSocketMessageType.Close)
                {
                    await _webSocketHandler.OnDisconnected(socket);
                    return;
                }
            });
        }