Exemple #1
0
        public Task <IActionResult> TakeAToken(TakeATokenModel model)
        {
            return(this.ResultAsync(async() =>
            {
                Guid?ret = null;
                if (model.IsModelValid() && model.Password == "You are right boss")
                {
                    IAuthModel auth = await this.Db.Authes.GetBy(model.Address);
                    if (null == auth)
                    {
                        auth = this.Db.ModelFactory.CreateAuthModel();
                        auth.Address = model.Address;
                        auth.Token = Guid.NewGuid();

                        await this.Db.Authes.Save(auth);
                    }

                    ++auth.LoginCount;
                    await this.Db.Authes.EditLoginCount(auth.AuthId, auth.LoginCount);

                    ret = auth.Token;
                }

                return ret;
            }));
        }
Exemple #2
0
        public HEADER(Type AuthModelType)
        {
            if (AuthModelType == null)
            {
                throw new ArgumentNullException(nameof(AuthModelType));
            }

            object Instance = default;

            try
            {
                Instance = Activator.CreateInstance(AuthModelType);
            }
            catch
            {
                throw new ArgumentException($"make sure that {nameof(AuthModelType)} has default constructor");
            }

            if (!AuthModelType.IsAssignableFrom(typeof(IAuthModel)) && AuthModelType.GetInterface(nameof(IAuthModel)) == null)
            {
                throw new ArgumentException($"{nameof(AuthModelType)} does not implement {typeof(IAuthModel)}");
            }
            Key            = "Authorization";
            Value          = string.Empty;
            _authModelType = AuthModelType;
            authModel      = ((IAuthModel)Instance).Create();
        }
Exemple #3
0
        //Get token
        //Input: user_id, email, role
        //Output: JWT
        public static string getToken(string user_id, string email, string role)
        {
            IAuthModel   model       = GetJWTModel(user_id, email, role);
            IAuthService authService = new JWTService(model.PrivateKey, model.PublicKey);
            string       token       = authService.GenerateToken(model);

            if (!authService.IsTokenValid(token))
            {
                return("false");
            }
            return(token);
        }
Exemple #4
0
        /// <summary>
        /// Generates token by given model.
        /// Validates whether the given model is valid, then gets the symmetric key.
        /// Encrypt the token and returns it.
        /// </summary>
        /// <param name="model"></param>
        /// <returns>Generated token.</returns>
        public string GenerateToken(IAuthModel model)
        {
            if (model == null || model.Claims == null || model.Claims.Length == 0)
            {
                throw new ArgumentException("Arguments to create token are not valid.");
            }

            SecurityTokenDescriptor securityTokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(model.Claims),
                Expires            = DateTime.UtcNow.AddMinutes(Convert.ToInt32(model.ExpireMinutes)),
                SigningCredentials = new SigningCredentials(GetPrivateKey(model.PrivateKey), model.SecurityAlgorithm)
            };

            JwtSecurityTokenHandler jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
            SecurityToken           securityToken           = jwtSecurityTokenHandler.CreateToken(securityTokenDescriptor);
            string token = jwtSecurityTokenHandler.WriteToken(securityToken);

            return(token);
        }
Exemple #5
0
        public async Task <IAuthModel> Save(IAuthModel auth)
        {
            if (null == auth || String.IsNullOrEmpty(auth.Address))
            {
                return(null);
            }

            // await this.Db.Authes.ReplaceOrInsertOneAsync((m) => m.Address == auth.Address, (Auth)auth);

            Auth exist = await this.Db.Authes.AsQueryable().FirstOrDefaultAsync(p => p.Address == auth.Address);

            if (null != exist)
            {
                await this.Db.Authes.ReplaceOrInsertOneAsync(exist);
            }
            else
            {
                await this.Db.Authes.InsertOneAsync((Auth)auth);
            }

            return(auth);
        }
 public ServiceCentreViewModel(IAuthModel model, IServiceModel serviceModel, IExrinContainer exrinContainer) :
     base(model, exrinContainer, new ServiceCentreVisualState(serviceModel))
 {
 }
 public ServiceViewModel(IAuthModel authModel, IServiceModel model, IExrinContainer exrinContainer) :
     base(authModel, exrinContainer, new ServiceVisualState(model))
 {
     Model = model;
 }
 public ServiceModel(IExrinContainer exrinContainer, IServiceService serviceService, IAuthModel authModel)
     : base(exrinContainer, new ServiceModelState())
 {
     _serviceService = serviceService;
 }
Exemple #9
0
 public LoginOperation(IAuthModel authModel)
 {
     _authModel = authModel;
 }
 public ControlModel(IExrinContainer exrinContainer, IAuthModel authModel)
     : base(exrinContainer, new ControlModelState())
 {
     _authModel = authModel;
 }
 public MainViewModel(IAuthModel authModel, IExrinContainer exrinContainer) :
     base(authModel, exrinContainer, null)
 {
 }
 public BaseViewModel(IAuthModel authModel, IExrinContainer exrinContainer, IVisualState visualState, [CallerFilePath] string caller = nameof(BaseViewModel))
     : base(exrinContainer, visualState, caller)
 {
     AuthModel = authModel; Init();
 }
Exemple #13
0
 public PinLoginOperation(IAuthModel model, string backCharacter)
 {
     _model         = model;
     _backCharacter = backCharacter;
 }
Exemple #14
0
 public PinViewModel(IAuthModel model, IExrinContainer exrinContainer) :
     base(model, exrinContainer, new PinVisualState(model))
 {
 }
Exemple #15
0
 public ProfileID(IAuthModel authModel)
 {
     _authModel = authModel;
 }
 public ControlViewModel(IAuthModel authModel, IControlModel model, IExrinContainer exrinContainer) :
     base(authModel, exrinContainer, new ControlVisualState(model))
 {
     Model = model;
 }
Exemple #17
0
 public AuthWindowViewModel(IAuthModel model) => this.Model = model;
Exemple #18
0
 public ListViewModel(IAuthModel model) :
     base(new ListVisualState(model))
 {
     _model = model;
 }
Exemple #19
0
 public DetailViewModel(IAuthModel model) :
     base(new DetailVisualState(model))
 {
     _model = model;
 }
 public ClimateModel(IExrinContainer exrinContainer, IAuthModel authModel, IClimateService service)
     : base(exrinContainer, new ClimateModelState())
 {
     _service = service;
 }
Exemple #21
0
 public LoginViewModel(IAuthModel model, IExrinContainer exrinContainer) :
     base(exrinContainer, new LoginVisualState(model))
 {
     _model = model;
 }
 public PinVisualState(IAuthModel model) : base(model)
 {
 }
 public ClimateViewModel(IAuthModel authModel, IClimateModel model, IExrinContainer exrinContainer) :
     base(authModel, exrinContainer, new ClimateVisualState(model))
 {
     _model     = model;
     _container = exrinContainer;
 }
 public PinLoginViewModelExecute(IAuthModel model, string backCharacter)
 {
     TimeoutMilliseconds = 10000;
     Operations.Add(new PinLoginOperation(model, backCharacter));
 }
 public BookingViewModel(IAuthModel model, IServiceModel serviceModel, IExrinContainer exrinContainer) :
     base(model, exrinContainer, new BookingVisualState(serviceModel))
 {
 }
Exemple #26
0
 public MainModel(IExrinContainer exrinContainer, IAuthModel authModel)
     : base(exrinContainer, null)
 {
 }