zoukankan      html  css  js  c++  java
  • Hangfire实战二——为DashBoard页面添加权限认证


    概述

    Hangfire Dashboard为我们提供了可视化的对后台任务进行管理的界面,我们可以直接在这个页面上对定时任务进行删除、立即执行等操作,如下图所示:


    默认情况下,这个页面只能在部署Hangfire的机器上进行访问,想要在其他地方进行访问,需要配置权限认证模块:Hangfire.Dashboard.Authorization。

    引用安装

    1、项目地址:https://github.com/HangfireIO/Hangfire.Dashboard.Authorization

    2、在已经安装Hangfire基本组件的项目中,通过Nuget程序包管理器添加Hangfire.Dashboard.Authorizaiton或Nuget控制台添加。通过Nuget程序包管理控制台安装的命令:

    • Install-Package Hangfire.Dashboard.Authorization

    使用

    在Startup.cs中的Configuration方法中添加以下代码:

    在代码中的Login和Password后面写登录的用户名和密码,这样在下次打开Hangfire的Dashboard时,就会弹出需要输入用户名和密码的窗口了,输入之后就可了打开Dashboard了

    var filter = new BasicAuthAuthorizationFilter(

                  new BasicAuthAuthorizationFilterOptions

                  {

                      SslRedirect = false,

                      // Require secure connection for dashboard

                      RequireSsl = false,

                      // Case sensitive login checking

                      LoginCaseSensitive = false,

                      // Users

                      Users = new[]

                      {

                            //new BasicAuthAuthorizationUser

                            //{

                            //    Login = "Administrator-1",

                            //    // Password as plain text

                            //    PasswordClear = "test"

                            //},

                            new BasicAuthAuthorizationUser

                            {

                                Login = "×××",//用户名

                                // Password as SHA1 hash

                                Password = new byte[]{ 0x54, ..., 0xa8 }//密码

                            }

                      }

                  });

                var options = new DashboardOptions

                {

                    AuthorizationFilters = new[] {

                        filter

                    }

                };

                app.UseHangfireDashboard("/TaskManager", options); //可以改变Dashboard的url

    登录密码的生成

    string password = "<your password here>";

    using (var cryptoProvider = System.Security.Cryptography.SHA1.Create())

    {

        byte[] passwordHash = cryptoProvider.ComputeHash(Encoding.UTF8.GetBytes(password));

        string result = "new byte[] { " +

            String.Join(",", passwordHash.Select(x => "0x" + x.ToString("x2")).ToArray())

            + " } ";

    }

    Reference:

    [1]https://github.com/HangfireIO/Hangfire.Dashboard.Authorization

    [2]https://www.cnblogs.com/ecin/p/6201262.html

    [3]https://www.cnblogs.com/lightmao/archive/2017/07/29/7254197.html Hangfire实战(一)------Hangfire+SQL Server实现简单的任务调度





  • 相关阅读:
    GTD180007:【运维】LINUX学习
    GTD180006:【运维】安装调试GDB
    {done}GTD180005:【翻译】LISP prehistory
    ComPiler180001:【学习】编译器学习链接
    AIIE180002:AIIE2015大会主题
    AIIE180001:AIIE2016大会主题
    GTD180004:【开发】python_med
    GTD180003:【开发】python_oeis
    欧亚大帝国及一战、二战
    大洲分界线
  • 原文地址:https://www.cnblogs.com/lightmao/p/7910139.html
Copyright © 2011-2022 走看看