.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 Files\IIS Administration\<version>\Microsoft.IIS.Administration\config\**

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,謝謝閱讀,若對你有幫助,請幫推薦下。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM