Exemple #1
0
 public DingDingController(IOptions <AppAuthenticationSettings> appSettings, HaikanCRMContext dbContext, IOptions <MdDesEncrypt> mdDesEncrypt)
 {
     _appSettings = appSettings.Value;
     _dbContext   = dbContext;
     MdDesEncrypt = mdDesEncrypt.Value;
 }
Exemple #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="appSettings"></param>
 public OauthController(IOptions <AppAuthenticationSettings> appSettings, haikanSDMSContext dbContext, IOptions <MdDesEncrypt> mdDesEncrypt)
 {
     _appSettings = appSettings.Value;
     _dbContext   = dbContext;
     MdDesEncrypt = mdDesEncrypt.Value;
 }
Exemple #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="appSettings"></param>
 public OauthController(IOptions <AppAuthenticationSettings> appSettings, DncZeusDbContext dbContext)
 {
     _appSettings = appSettings.Value;
     _dbContext   = dbContext;
 }
Exemple #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="appSettings"></param>
 public AuthController(IOptions <AppAuthenticationSettings> appSettings, StudyDbContext dbContext)
 {
     _appSettings = appSettings.Value;
     _dbContext   = dbContext;
 }
Exemple #5
0
        /// <summary>
        /// 注册JWT Bearer认证服务的静态扩展方法
        /// </summary>
        /// <param name="services">The services.</param>
        /// <param name="appSettings">JWT授权的配置项</param>
        public static void AddJwtBearerAuthentication(this IServiceCollection services, AppAuthenticationSettings appSettings)
        {
            //使用应用密钥得到一个加密密钥字节数组
            var key = Encoding.ASCII.GetBytes(appSettings.Secret);

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddCookie(cfg => cfg.SlidingExpiration = true)
            .AddJwtBearer(x =>
            {
                x.RequireHttpsMetadata      = true;
                x.SaveToken                 = true;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(key),
                    ValidateIssuer           = false,
                    ValidateAudience         = false
                };
                x.Events = new JwtBearerEvents
                {
                    OnAuthenticationFailed = context =>
                    {
                        if (context.HttpContext.Request.Path.HasValue &&
                            (context.HttpContext.Request.Path.Value.IndexOf("api/menu/find_all_menu") > -1 ||
                             context.HttpContext.Request.Path.Value.IndexOf("api/user/check_token") > -1
                            ))
                        {
                            return(Task.CompletedTask);
                        }
                        string strUtcTime = DateTime.Now.ToString(DateTimeExtensions.DateTimeFormatTicksUtcOffset);
                        string strJson    = @"{""code"":50008,""data"":null,""msg"":""无效的token"",""time_stamp"":""" + strUtcTime + @"""}";
                        context.NoResult();
                        context.Response.StatusCode  = (int)HttpStatusCode.OK;
                        context.Response.ContentType = "application/json";
                        context.Response.WriteAsync(strJson).Wait();
                        return(Task.CompletedTask);
                    },
                    OnChallenge = context =>
                    {
                        context.HandleResponse();
                        return(Task.CompletedTask);
                    },
                    // ...
                    OnMessageReceived = context =>
                    {
                        string authorization = context.Request.Headers["Authorization"];
                        // If no authorization header found, nothing to process further
                        if (string.IsNullOrEmpty(authorization))
                        {
                            context.NoResult();
                            return(Task.CompletedTask);
                        }
                        if (authorization.StartsWith("Token ", StringComparison.OrdinalIgnoreCase))
                        {
                            context.Token = authorization.Substring("Token ".Length).Trim();
                        }
                        else if (authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
                        {
                            context.Token = authorization.Substring("Bearer ".Length).Trim();
                        }
                        else
                        {
                            context.Token = authorization.Trim();
                        }
                        // If no token found, no further work possible
                        if (string.IsNullOrEmpty(context.Token))
                        {
                            context.NoResult();
                            return(Task.CompletedTask);
                        }
                        return(Task.CompletedTask);
                    }
                };
            });
        }
Exemple #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dbContext"></param>
 /// <param name="mapper"></param>
 public UserController(DncZeusDbContext dbContext, IMapper mapper, IOptions <AppAuthenticationSettings> appSettings)
 {
     _dbContext   = dbContext;
     _mapper      = mapper;
     _appSettings = appSettings.Value;
 }
Exemple #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dbContext"></param>
 public AccountController(IOptions <AppAuthenticationSettings> appSettings, haikanSDMSContext dbContext)
 {
     _dbContext   = dbContext;
     _appSettings = appSettings.Value;
 }
Exemple #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserController"/> class.
 /// </summary>
 /// <param name="appSettings">The application settings.</param>
 /// <param name="dbContext">The database context.</param>
 public UserController(IOptions <AppAuthenticationSettings> appSettings, D2CmsDbContext dbContext) : base(dbContext)
 {
     _appSettings = appSettings.Value;
 }
 /// <summary>
 /// 注册JWT Bearer认证服务的静态扩展方法
 /// </summary>
 /// <param name="services"></param>
 /// <param name="appSettings">JWT授权的配置项</param>
 public static void AddJwtBearerAuthentication(this IServiceCollection services, AppAuthenticationSettings appSettings)
 {
     //使用应用密钥得到一个加密密钥字节数组
     byte[] key = Encoding.ASCII.GetBytes(appSettings.Secret);
     services.AddAuthentication(x =>
     {
         x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
         x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
     })
     .AddCookie(cfg => cfg.SlidingExpiration = true)
     .AddJwtBearer(x =>
     {
         x.RequireHttpsMetadata      = true;
         x.SaveToken                 = true;
         x.TokenValidationParameters = new TokenValidationParameters
         {
             ValidateIssuerSigningKey = true,
             IssuerSigningKey         = new SymmetricSecurityKey(key),
             ValidateIssuer           = false,
             ValidateAudience         = false
         };
     });
 }
Exemple #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="appSettings"></param>
 public OauthController(IOptions <AppAuthenticationSettings> appSettings, RefuseClassificationContext dbContext, IOptions <MdDesEncrypt> mdDesEncrypt)
 {
     _appSettings = appSettings.Value;
     _dbContext   = dbContext;
     MdDesEncrypt = mdDesEncrypt.Value;
 }
Exemple #11
0
 public AuthenticationController(IOptions <AppAuthenticationSettings> appSettings, CoreContext dbContext, IMapper mapper) : base(dbContext, mapper)
 {
     this._appSettings = appSettings.Value;
 }