Ejemplo n.º 1
0
        public instructor_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.InstructorManage)
            };
            template = new ListTemplate();

            var cargs = new CreateArgs("api/auth/instructors/", User.Api, "创建辅导员用户", Margin: new Thickness(0, 10, 0, 10));

            cargs.items.Add(new CreateArgs.Item("username", "工号", "text"));
            cargs.items.Add(new CreateArgs.Item("password", "密码", "text"));
            cargs.items.Add(new CreateArgs.Item("name", "姓名", "text"));
            cargs.items.Add(new CreateArgs.Item("gender", "性别", "choice", data: gender_choices.ToArray()));
            var args = new ListArgs("api/auth/instructors/", User.Api, Title, Searchable: true, Createable: true, Createargs: cargs);

            args.columns.Add(new ListArgs.Column("id", "工号", ordering: "id",
                                                 hyperlink: ListArgs.autohyperlink("instructor-other-document").add("id").lambda));
            args.columns.Add(new ListArgs.Column("user", "姓名", ordering: "username",
                                                 hyperlink: ListArgs.autohyperlink("instructor-other-document").add("id").lambda));
            args.columns.Add(new ListArgs.Column("gender_related", "性别", type: "choice", data: gender_choices));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public class_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.ClassManage)
            };
            template = new ListTemplate();

            var cargs = new CreateArgs("api/classes/", User.Api, "创建班级", Margin: new Thickness(0, 10, 0, 10));

            cargs.items.Add(new CreateArgs.Item("id", "班级编号", "text"));
            cargs.items.Add(new CreateArgs.Item("grade", "年级", "text"));
            cargs.items.Add(new CreateArgs.Item("college", "学院", "text"));
            cargs.items.Add(new CreateArgs.Item("major", "专业", "text"));
            cargs.items.Add(new CreateArgs.Item("number", "班级", "text"));
            cargs.items.Add(new CreateArgs.Item("as_instructor_set", "辅导员列表(工号)", "multitext"));
            cargs.items.Add(new CreateArgs.Item("as_student_set", "学生列表(学号)", "multitext"));

            var args = new ListArgs("api/classes/", User.Api, Title, Searchable: true, Createable: true, Createargs: cargs);

            args.columns.Add(new ListArgs.Column("id", "班级编号",
                                                 hyperlink: ListArgs.autohyperlink("class-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("grade", "年级", ordering: "grade"));
            args.columns.Add(new ListArgs.Column("college", "学院", ordering: "college"));
            args.columns.Add(new ListArgs.Column("major", "专业", ordering: "major"));
            args.columns.Add(new ListArgs.Column("number", "班级", ordering: "number"));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 3
0
        public static string BuildToken(this User user, AuthSetting authSetting, IList <string> roles)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                //Jti: JTW token id là 1 unique id, đảm bảo cái token ko bị ăn cắp
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),

                new Claim(ClaimTypes.NameIdentifier, user.Id),
                new Claim(ClaimTypes.Name, user.UserName)
            }; //payload

            claims.AddRange(roles.Select(role => new Claim(ClaimsIdentity.DefaultRoleClaimType, role)));
            //Chuyển chuỗi authSetting.Secret thành 1 mảng bytes rồi encoding(mã hóa) nó theo chuẩn UTF8
            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authSetting.Secret)); //where header?

            var crediential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);   //signature?
            var token       = new JwtSecurityToken(
                issuer: authSetting.Issuer,
                audience: authSetting.Audience,
                claims: claims,
                expires: DateTime.Now.AddMinutes(authSetting.AccessExpiration),
                signingCredentials: crediential
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Ejemplo n.º 4
0
        public classroom_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.ClassroomManage)
            };
            template = new ListTemplate();

            var cargs = new CreateArgs("api/classrooms/basic/", User.Api, "创建教室", Margin: new Thickness(0, 10, 0, 10));

            cargs.items.Add(new CreateArgs.Item("id", "教室编号", "text"));
            cargs.items.Add(new CreateArgs.Item("name", "教室名称", "text"));
            cargs.items.Add(new CreateArgs.Item("size", "教室大小", "text"));
            cargs.items.Add(new CreateArgs.Item("password", "教室密码", "text"));

            var args = new ListArgs("api/classrooms/basic/", User.Api, Title, Searchable: true, Createable: true, Createargs: cargs);

            args.columns.Add(new ListArgs.Column("id", "教室编号",
                                                 hyperlink: ListArgs.autohyperlink("classroom-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("name", "教室名称", ordering: "name",
                                                 hyperlink: ListArgs.autohyperlink("classroom-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("size", "教室大小", ordering: "size"));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 5
0
 public password()
 {
     InitializeComponent();
     default_auth = new AuthSetting[] {
         new AuthSetting(Authority.UserManage)
     };
 }
Ejemplo n.º 6
0
        public course_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.CourseManage)
            };
            template = new ListTemplate();

            var cargs = new CreateArgs("api/courses/basic/", User.Api, "创建课程", Margin: new Thickness(0, 10, 0, 10));

            cargs.items.Add(new CreateArgs.Item("id", "课程编号", "text"));
            cargs.items.Add(new CreateArgs.Item("name", "课程名称", "text"));
            cargs.items.Add(new CreateArgs.Item("teacher", "教师(工号)", "text"));
            cargs.items.Add(new CreateArgs.Item("as_student_set", "学生列表(学号)", "multitext"));


            var args = new ListArgs("api/courses/basic/", User.Api, Title, Searchable: true, Createable: true, Createargs: cargs);

            args.columns.Add(new ListArgs.Column("id", "课程编号", ordering: "id",
                                                 hyperlink: ListArgs.autohyperlink("course-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("name", "课程名称", ordering: "name",
                                                 hyperlink: ListArgs.autohyperlink("course-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("teacher", "任课教师", ordering: "teacher",
                                                 hyperlink: ListArgs.autohyperlink("teacher-other-document").add("id", "teacher").lambda));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public admin_schedule()
        {
            InitializeComponent();

            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.Admin)
            };
            template = new ListTemplate();

            var cargs = new CreateArgs("api/schedule/system-schedules/", User.Api, "创建时间表", Margin: new Thickness(0, 10, 0, 10));

            cargs.items.Add(new CreateArgs.Item("year", "学年", "text"));
            cargs.items.Add(new CreateArgs.Item("term", "学期", "text"));
            cargs.items.Add(new CreateArgs.Item("begin", "开始时间", "text"));
            cargs.items.Add(new CreateArgs.Item("end", "结束时间", "text"));


            var args = new ListArgs("api/schedule/system-schedules/", User.Api, Title, Searchable: true, Createable: true, Createargs: cargs);

            args.columns.Add(new ListArgs.Column("id", "编号", ordering: "id",
                                                 hyperlink: ListArgs.autohyperlink("admin-admin-schedule-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("year", "学年"));
            args.columns.Add(new ListArgs.Column("term", "学期"));
            args.columns.Add(new ListArgs.Column("begin", "开始时间"));
            args.columns.Add(new ListArgs.Column("end", "结束时间"));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 8
0
 public AuthenticationListener(IHttpContextAccessor contextAccessor,
                               IOptions <AuthSetting> authSetting,
                               HttpClient httpClient)
 {
     _httpContextAccessor = contextAccessor;
     _authSetting         = authSetting.Value;
     _httpClient          = httpClient;
 }
Ejemplo n.º 9
0
 public AuthService(UserManager <User> userManager
                    , SignInManager <User> signInManager,
                    IOptions <AuthSetting> options,
                    ApplicationDbContext dbContext)
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _settings      = options.Value;
     _dbContext     = dbContext;
 }
 public AppAuthService(IEntityService <UserAccount> entityService, IEntityService <RealEstate> estateEntityService, IOptions <AuthSetting> authOptions,
                       IOptions <AppSetting> appOptions, IPasswordService passwordService, IFastHasher hasher, IUserGroupProvider groupProvider)
 {
     _entityService       = entityService;
     _estateEntityService = estateEntityService;
     _passwordService     = passwordService;
     _hasher        = hasher;
     _groupProvider = groupProvider;
     _authSetting   = authOptions.Value;
     _appSetting    = appOptions.Value;
 }
Ejemplo n.º 11
0
        private void ConfigureOthers()
        {
            m_AuthSetting        = m_Configuration.GetSection("IdentityServer").Get <AuthSetting>();
            m_FileServiceSetting = m_Configuration.GetSection("FileService").Get <FileServiceSetting>();

            JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                DateTimeZoneHandling = DateTimeZoneHandling.Unspecified,
                DateFormatString     = MyConstants.DateTimeFormatter.HyphenLongDateTime
            };
        }
 public override bool NavigatingToEvent(object sender, IDictionary <string, object> kwargs)
 {
     if (kwargs != null)
     {
         ID = kwargs["id"] as string;
     }
     if (ID != null)
     {
         default_auth = new AuthSetting[] {
             new AuthSetting(Authority.CourseManage),
             new AuthSetting(BelongRelation.Parent, "course", ID)
         };
     }
     return(base.NavigatingToEvent(sender, kwargs));
 }
        public modify()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.CourseManage)
            };
            template = new InstanceTemplate();
            var args = new InstanceArgs("api/courses/basic/", null, User.Api, Title, Onlywrite: true);

            args.items.Add(new InstanceArgs.Item("id", "课程编号", "text"));
            args.items.Add(new InstanceArgs.Item("name", "课程名称", "text"));
            args.items.Add(new InstanceArgs.Item("teacher", "教师(工号)", "text"));
            args.items.Add(new InstanceArgs.Item("as_student_set", "学生(工号)", "multitext"));
            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 14
0
 public override bool NavigatingToEvent(object sender, IDictionary <string, object> kwargs)
 {
     if (kwargs == null && ID == null)
     {
         return(false);
     }
     if (kwargs != null)
     {
         ID           = kwargs["id"] as string;
         default_auth = new AuthSetting[] {
             new AuthSetting(BelongRelation.Sub, "class", ID),
             new AuthSetting(BelongRelation.Parent, "class", ID),
             new AuthSetting(Authority.ClassManage),
         };
     }
     return(base.NavigatingToEvent(sender, kwargs));
 }
Ejemplo n.º 15
0
 public AccountService(IUnitOfWork unitOfWork
                       , IMapper mapper
                       , IRedisCacheService redisCache
                       , IHttpContextAccessor httpContextAccessor
                       , IOptions <AuthSetting> authSetting
                       , IOptions <ResetPasswordSetting> resetPasswordSetting
                       , IFileService fileService
                       , IRoleService roleService)
     : base(unitOfWork, mapper, redisCache, httpContextAccessor)
 {
     userRepo                  = unitOfWork.Repository <User>();
     tokenExpiredInDay         = 15;
     this.authSetting          = authSetting.Value;
     this.roleService          = roleService;
     this.resetPasswordSetting = resetPasswordSetting.Value;
     this.fileService          = fileService;
 }
Ejemplo n.º 16
0
        public manager_document()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.StudentManage)
            };

            //txt_gender.Choices = gender_choices;
            template = new InstanceTemplate();

            var args = new InstanceArgs("api/auth/users/", null, User.Api, Title, Deleteable: true, Onlywrite: true);

            args.margin = new Thickness(0, 10, 0, 10);
            args.items.Add(new InstanceArgs.Item("name", "姓名", "text"));
            args.items.Add(new InstanceArgs.Item("gender", "性别", "choice", data: gender_choices.ToArray()));
            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 17
0
        public modify()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.ClassManage)
            };
            template = new InstanceTemplate();
            var args = new InstanceArgs("api/classes/", null, User.Api, Title, Onlywrite: true);

            args.items.Add(new InstanceArgs.Item("id", "班级编号", "text"));
            args.items.Add(new InstanceArgs.Item("grade", "年级", "text"));
            args.items.Add(new InstanceArgs.Item("college", "学院", "text"));
            args.items.Add(new InstanceArgs.Item("major", "专业", "text"));
            args.items.Add(new InstanceArgs.Item("number", "班号", "text"));
            args.items.Add(new InstanceArgs.Item("as_instructor_set", "辅导员(工号)", "multitext"));
            args.items.Add(new InstanceArgs.Item("as_student_set", "学生(学号)", "multitext"));
            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public self_attendances()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.Student)
            };

            template = new ListTemplate();
            var args = new ListArgs("api/record/attendance-records/", User.Api, Title, Searchable: true);

            args.columns.Add(new ListArgs.Column("id", "编号"));
            args.columns.Add(new ListArgs.Column("date", "日期"));
            args.columns.Add(new ListArgs.Column("course_number", "节次"));
            args.columns.Add(new ListArgs.Column("status", "状态"));
            args.columns.Add(new ListArgs.Column("course_manage", "课程编号",
                                                 hyperlink: ListArgs.autohyperlink("course-instance").add("id", "course_manage").lambda));
            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public self_teacher()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.Office)
            };
            template = new ListTemplate();

            var args = new ListArgs("api/auth/teachers/", User.Api, Title, Searchable: true);

            args.columns.Add(new ListArgs.Column("id", "工号", ordering: "id",
                                                 hyperlink: ListArgs.autohyperlink("teacher-other-document").add("id").lambda));
            args.columns.Add(new ListArgs.Column("user", "姓名", ordering: "username",
                                                 hyperlink: ListArgs.autohyperlink("teacher-other-document").add("id").lambda));
            args.columns.Add(new ListArgs.Column("gender_related", "性别", type: "choice", data: gender_choices));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
Ejemplo n.º 20
0
        public static string BuildToken(this Customer customer, AuthSetting authSetting)
        {
            List <Claim> claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, customer.Username),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, customer.Id.ToString()),
            };
            var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authSetting.Secret));
            var crediential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var token       = new JwtSecurityToken(
                issuer: authSetting.Issuer,
                audience: authSetting.Audience,
                claims: claims,
                expires: DateTime.Now.AddMinutes(authSetting.AccessExpiration),
                signingCredentials: crediential
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Ejemplo n.º 21
0
        public course_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.Teacher),
                new AuthSetting(Authority.Office),
            };
            template = new ListTemplate();

            var args = new ListArgs("api/courses/basic/", User.Api, Title, Searchable: true);

            args.columns.Add(new ListArgs.Column("id", "课程编号", ordering: "id",
                                                 hyperlink: ListArgs.autohyperlink("course-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("name", "课程名称", ordering: "name",
                                                 hyperlink: ListArgs.autohyperlink("course-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("teacher", "任课教师", ordering: "teacher",
                                                 hyperlink: ListArgs.autohyperlink("teacher-other-document").add("id", "teacher").lambda));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public class_list()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.Office),
                new AuthSetting(Authority.Instructor)
            };
            template = new ListTemplate();

            var args = new ListArgs("api/classes/", User.Api, Title, Searchable: true);

            args.columns.Add(new ListArgs.Column("id", "班级编号",
                                                 hyperlink: ListArgs.autohyperlink("class-instance").add("id").lambda));
            args.columns.Add(new ListArgs.Column("grade", "年级", ordering: "grade"));
            args.columns.Add(new ListArgs.Column("college", "学院", ordering: "college"));
            args.columns.Add(new ListArgs.Column("major", "专业", ordering: "major"));
            args.columns.Add(new ListArgs.Column("number", "班级", ordering: "number"));

            template.Construct(args);
            ContentGrid.Children.Add(template);
        }
        public modify()
        {
            InitializeComponent();
            default_auth = new AuthSetting[] {
                new AuthSetting(Authority.ClassroomManage)
            };
            template = new InstanceTemplate();
            var args = new InstanceArgs("api/classrooms/basic/", null, User.Api, Title, Onlywrite: true);

            args.items.Add(new InstanceArgs.Item("id", "教室编号", "text"));
            args.items.Add(new InstanceArgs.Item("name", "教室名称", "text"));
            args.items.Add(new InstanceArgs.Item("size", "教室大小", "text"));
            template.Construct(args);
            ContentGrid.Children.Add(template);

            pw_temp = new InstanceTemplate();
            var pargs = new InstanceArgs("api/classrooms/manage/", null, User.Api, "教室验证码", Deleteable: false);

            pargs.items.Add(new InstanceArgs.Item("password", "验证码", "text", Editable: EditAbleStatus.Writeable));
            pw_temp.Construct(pargs);
            PwGrid.Children.Add(pw_temp);
        }
Ejemplo n.º 24
0
        public static string BuildToken(this User user, AuthSetting authSetting)
        {
            List <Claim> claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id),
            }; //payload

            //Chuyển chuỗi authSetting.Secret thành 1 mảng bytes rồi encoding(mã hóa) nó theo chuẩn UTF8
            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authSetting.Secret)); //where header?

            var crediential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);   //signature?
            var token       = new JwtSecurityToken(
                issuer: authSetting.Issuer,
                audience: authSetting.Audience,
                claims: claims,
                expires: DateTime.Now.AddMinutes(authSetting.AccessExpiration),
                signingCredentials: crediential
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Ejemplo n.º 25
0
 public AuthController(DataContext context, IOptions <AuthSetting> authSettings)
 {
     _context      = context;
     _authSettings = authSettings.Value;
 }
        public static void AddIdentityConfiguration(this IServiceCollection services, AuthSetting authSetting)
        {
            services.AddIdentity <User, IdentityRole>(options =>
            {
                options.Password.RequireNonAlphanumeric = false; //ký tự đặt biệt
                options.Password.RequireUppercase       = false;
                options.Password.RequireDigit           = true;
                options.Password.RequiredLength         = 6;
                options.Password.RequireLowercase       = true;
            })
            .AddEntityFrameworkStores <ResellTicketDbContext>() // public virtual DbSet<Ticket> Name { get; set; }
            .AddDefaultTokenProviders();                        //

            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            services.AddAuthentication(options =>
            {
                options.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata      = false;
                options.SaveToken                 = true;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer   = true,
                    ValidateAudience = true,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authSetting.Secret)),
                    ValidIssuer      = authSetting.Issuer,
                    ValidAudience    = authSetting.Audience,
                };
            });

            //services.AddAuthorization(options =>
            //{
            //    options.AddPolicy()
            //})
        }
 public TerminalEquipmentConnectivityUpdatedSubscription(TerminalEquipmentConnectivityObserver terminalEquipmentConnectivityObserver, IOptions <AuthSetting> authSetting)
 {
     _terminalEquipmentConnectivityObserver = terminalEquipmentConnectivityObserver;
     _authSetting = authSetting.Value;
 }
 public SchematicUpdatedSubscription(SchematicDiagramObserver schematicDiagramObserver, IOptions <AuthSetting> authSetting)
 {
     _schematicDiagramObserver = schematicDiagramObserver;
     _authSetting = authSetting.Value;
 }