• .NET Core开源:IIS集中化Web管理工具


    目录

    一、       简介.... 1

    二、       安装.... 1

    三、       IIS Administration配置文件.... 2

    四、       Web UI管理界面.... 3

    五、       IIS Administration API7

     

    一、简介

    Microsoft IIS Administration 微软提供,管理IIS配置REST API 和集中化IIS管理WEB UI

    l  支持绝大部分IIS配置项管理

    l  支持管理远程IIS,实现集中化IIS配置管理。

    l  支持REST API,方便集成到自研系统。

    l  支持IIS配置访问安全性设置

     

    Githubhttps://github.com/Microsoft/IIS.Administration

    微软官网使用文档:https://docs.microsoft.com/en-us/IIS-Administration/

     

    二、安装

    下载:https://docs.microsoft.com/en-us/IIS-Administration/getting-started

    环境要求:

    l  操作系统Windows7版本及以上版本

    l  IIS Administration API 依赖.NET Core,在安装IIS Administration安装包时,会按需自动安装

    安装完后:

    Windows服务名:Microsoft IIS Administration

    Microsoft IIS Administration API地址:https://localhost:55539 (可以使用IP地址访问,但是会遇到权限问题,修改权限的方法在下面“修改配置文件”中介绍)

    Web UI管理地址:https://manage.iis.net/get

     

    获取AccessToken

    进入https://localhost:55539/connect,创建一个Access Key

    image

     

    拿到accesstoken

    l  通过地址:https://localhost:55539/connect 进入api展示界面(https://localhost:55539/#/api),查看可在自己的程序中通过rest api 访问iis信息

    l  通过地址:https://manage.iis.net/connect 进入UI管理界面

     

    三、IIS Administration配置文件

    1)  配置文件路径:%SystemDrive%Program FilesIIS Administration<version>Microsoft.IIS.Administrationconfig**

    2)  修改配置文件后需要重启windows服务(Microsoft IIS Administration

    3)  appsettings.json 配置:安全性、日志、audit(审计)、cors(跨域)、访问用户、只读等,详细查看文档

    4)  modules.json配置:启用或禁用IIS配置模块

     

    配置修改示例

    示例一、访问https://远程IP地址:55539/connect ,出现windows登录验证框

    image

    修改点:修改appsettings.json,将"require_windows_authentication"设置为 false

     

    示例二、编码访问IIS Administration REST API 401没有权限访问

    修改点:修改appsettings.json"access_policy" -> "api" ->"users": "administrators"修改为:"users": "Everyone"

     

    appsettings.json修改后类似如下:(默认会将执行安装包的角色加入到安全设置中)

    "security": {
        "require_windows_authentication": false,	// 默认为true
        "users": {
          "administrators": [
      		……
          ],
          "owners": [
      		……
          ]
        },
        "access_policy": {
          "api": {
            "users": "Everyone",	// 默认为执行安装包角色
            "access_key": true
          },
          "api_keys": {
            "users": "administrators",
            "access_key": false
          },
          "system": {
            "users": "owners",
            "access_key": true
          }
        }
      }
    

    四、Web UI管理界面

    前面介绍中拿到Access Token后,进入 https://manage.iis.net 管理界面

     

    支持远程IIS管理

    image

     

    IIS服务器的系统资源监控

    image

     

    IIS根节点配置管理

    image

     

    image

     

    IIS上的站点信息

    image

     

    IIS上的特定站点配置管理

    包括:绑定信息、应用程序池、虚拟目录下的应用程序、身份验证、默认文档、目录浏览、IP限制、日志、MIME类型、监控、模块、响应压缩、请求筛选、HTTP响应标头、请求跟踪、静态缓存、HTTP重定向等

    image

    image

     

    五、IIS Administration API

    前面介绍中拿到Access Token后,进入 https://localhost:55539/#/api

    image

    image

     

    METHOD      DESCRIPTION

    GET         Retrieves the specified resource

    POST        Creates a resource

    PATCH       Updates the specified resource

    DELETE      Deletes the specified resource

    HEAD        Similar to get except only returns HTTP headers

    示例

    https://docs.microsoft.com/en-us/IIS-Administration/api/crud

     

    代码示例RestSharp

    var client = new RestClient(iisAdminBaseUrl);
    ServicePointManager.ServerCertificateValidationCallback +=
    (sender, certificate, chain, sslPolicyErrors) => true;
    var request = new RestRequest("/api/webserver/websites", Method.GET);
    request.AddHeader("Access-Token", $"Bearer {token}");
    request.AddHeader("Accept", "application/hal+json");
    IRestResponse response = client.Execute(request);
    if (response.IsSuccessful)
    { …… }
    

               

    代码示例HttpClient

    var apiClient = new HttpClient(new HttpClientHandler()
    {
    UseDefaultCredentials = true,
    ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true
    }, true);
    // Set access token for every request
    apiClient.DefaultRequestHeaders.Add("Access-Token", "Bearer {token}");
    // Request HAL (_links)
    apiClient.DefaultRequestHeaders.Add("Accept", "application/hal+json");
    
    var res = await apiClient.GetAsync("https://localhost:55539/api/webserver/websites");
    if (res.StatusCode != HttpStatusCode.OK) {
      HandleError(res);
      return;
    }
    JArray sites = JObject.Parse(res.Content.ReadAsStringAsync().Result).Value<JArray>("websites");
    

     

     

    推荐阅读:

                 站点部署,IIS配置优化指南

     

     

    ===========================================

    over,谢谢阅读,若对你有帮助,请帮推荐下。

     

     

  • 相关阅读:
    主成分分析PCA(1)
    机器人操作系统入门(七)rospy客户端库
    线性代数的本质(Essense of Linear Algebra)——3Blue1Brown
    机器人操作系统入门(六)roscpp客户端库
    《机器人操作系统(ROS)浅析》肖军浩译
    机器人操作系统入门(五)常用工具
    Python学习(八)Matlab和Numpy异同
    机器人操作系统入门(四)ROS通信架构
    机器人操作系统入门(三)ROS通信架构
    机器人操作系统入门(二)ROS文件系统
  • 原文地址:https://www.cnblogs.com/heyuquan/p/iis-admin-and-develop.html
Copyright © 2020-2023  润新知