是否可以在運行時以編程方式使用 C# 複製基於權限的 webconfig 文件?

喬爾·庫珀

我希望管理員能夠將 pdf 文件上傳到一個唯一的目錄,該目錄包含一個僅允許管理員查看 pdf 的 webconfig 文件。

當 pdf 準備好向公眾發佈時,管理員會適當地標記它,代碼隱藏會修改 webconfig 使其公開。

我需要它在運行時運行。

我的想法是有一個帶有私有 webconfig 的模板目錄。Web 管理員上傳 pdf 它將模板目錄和 webconfig 複製到新位置,然後插入 pdf。準備好發布後,管理員設置一個標誌,代碼將 webconfig 更改為 public。再次全部在運行時。

這裡的重點是,pdf 的路徑一旦上傳就永遠不會改變。

我找到了複製目錄和修改 webconfig 的代碼。問題是在運行時將 webconfig 文件從一個位置複製到另一個位置。

示例 webconfig(私有)

<configuration>
    <system.web>
        <authorization>
          <allow roles="private" />
          <deny users ="*" />
        </authorization>
    </system.web>
</configuration>

示例 webconfig(公共)

<configuration>
    <system.web>
        <authorization>
          <allow roles="public" />
          <deny users ="*" />
        </authorization>
    </system.web>
</configuration>
阿爾伯特·D·卡爾勒

如前所述,如果不需要靜態 URL,那麼您可以提供“我的文件”或其他內容的鏈接,然後顯示在網格中。

您可以只為管理員用戶保護說 UploadFiles 或任何文件夾。然後提供這樣的網格:

在此處輸入圖片說明

並且通過使用數據庫,每個客戶上傳和分類文件(如果這是您想要的)要容易得多。

然後數據庫行中的一個簡單標誌或設置控制是否讀取文件供用戶查看(或下載)。

在上面,如果您單擊 PDF 文件預覽,那麼我將文件(流)下載給用戶。

代碼很像這樣:

   Dim btnLink As ImageButton

    btnLink = sender
    Dim strInternalFile = btnLink.Attributes("iFile")

    Dim binFile() As Byte
    Dim strConType As String = ""

    If File.Exists(strInternalFile) Then

        strConType = MimeMapping.GetMimeMapping(strInternalFile)

        binFile = File.ReadAllBytes(strInternalFile)
        Response.ContentType = strConType
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(strInternalFile))
        Response.BinaryWrite(binFile)
        'Response.WriteFile(strWebUrl)
        Response.End()

所以上面只是將文件下載到用​​戶瀏覽器。

如前所述,如果需要靜態鏈接,因此文件不會按“每個用戶”或“每次登錄”分發,那麼您可以擁有一個顯示“就緒”文檔或“可用文檔列表”的登錄頁面作為 URL,但隨後會顯示某種類型的 UI 或網格顯示(如上),然後用戶單擊某個按鈕以“下載”文件。

我認為嘗試破解網絡配置沒有意義。這將如何與多個用戶一起使用?已經加載的頁面將緩存這些設置。總而言之,試圖弄亂網絡配置,並在多用戶環境中工作,我認為這行不通。

折騰緩存問題,以及其他各種事情?如果有一些文件用戶是看還是看不到?然後提供一個用戶界面,而不是文件的簡單 URL - 這將極大地提高站點的安全性。

然後數據庫系統成為用戶的管理系統 - 而不是一些網絡配置,無論如何都不會真正為每個用戶提供對該過程的任何類型的控制。即使您總是基於用戶登錄“ID”創建一些新文件夾,那麼現在必須構建一些管理頁面,您需要一種簡單的方法來打開或允許用戶獲取和查看某些文件一些用戶界面和軟件交互,可以簡單地“更新”數據庫中的標誌或設置。

我只是不知道如何通過嘗試弄亂 web.config 來實現可行的工作流程,而且我什至不確定已經緩存的頁面等是否會正常工作。

我不會走那條路——這裡的黑客方法太多了。

我還在數據庫中添加了一個帶有 GUID 列的額外列。所以我可以提供一個帶有指向文件的 GUID 的 URL。我從 URL 中獲取 GUID,獲取一行,現在我可以通過將 User_ID 存儲在該數據庫行中來檢查該文件所有者。因此,現在登錄的用戶只能獲取屬於他們的自己的文件。當然,添加“管理員批准”標誌或不顯示/允許該用戶使用和查看文件的內容很簡單。

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

如何使用 c 編程將一些字符串從文件複製到另一個文件

製作在編譯時運行的宏的版本文件

使用自製軟件困境更新 nodejs:需要更多權限但 brew 不適用於 sudo?

是否可以控制用於在 C++ 中執行 openmp 任務的 Openmp 線程?

繪製基於行的數據

在運行時以編程方式更改 SVG 類

MSdeploy skip root webconfig

C 二進製文件的執行很少

是否可以創建基於編輯和基於時間的觸發器?

是否可以將 C# 項目編譯為單文件 UMD JavaScript 庫?

如何使用簡單命令編譯 C++ 複雜文件夾?

C# winform - 基於數據而不是擴展名查找文件類型

使用命令行參數從 Python 運行 C 可執行文件

在 python 程序中運行 C 可執行文件

當我嘗試使用 io.open 打開文件夾時,出現權限錯誤

基於權限的 React Admin 渲染資源

Causado por: java.lang.AbstractMethodError: com.myapp.webapp.config.WebConfig $$ EnhancerBySpringCGLIB $$ b5f5a3c0.configureContentNegotiation

嵌入式編程中,使用uboot時應該修改哪些dts文件?

使用 Powershell 腳本從子文件夾複製特定類型的文件

說 OpenGL 3.2+ 核心配置文件基於“保留模式”模式是否正確?

How to rewrite url name from webconfig

IIS - Flask script python webconfig erro wfastcgi

o webconfig é substituído a cada minuto automaticamente

IIS - Flask script python webconfig erro wfastcgi

Obtendo dados de dentro do webconfig

以編程方式運行 SQL 腳本

如何將文件複製到遠程linux服務器中的共享帳戶

linux 上的 .gz 文件權限被拒絕

如何以編程方式添加面板 winforms c#

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo