簡體   English   中英

服務器端的WebClient身份驗證

[英]WebClient Authentication on Server Side

我們有一個控制台應用程序(C#)和Web服務器(IIS)。 控制台應用程序需要通過HTTPS POST將文件發送到Web服務器。 現在,我們需要在控制台應用程序和Web服務器之間添加身份驗證,並且嘗試使用WebClient的憑據系統。

控制台應用程序的上傳代碼:

            WebClient uploadWebClient = new WebClient();
            uploadWebClient.UploadFileCompleted += new UploadFileCompletedEventHandler(UploadFileCallback);

            // Authentication
            uploadWebClient.UseDefaultCredentials = false;
            uploadWebClient.Credentials = new NetworkCredential(usernameString, passwordString);

            // Upload via HTTPS POST
            uploadWebClient.UploadFileAsync(new Uri(destURI), "POST", "file.ext");

服務器端代碼為:

void Page_Load(object sender, EventArgs e) {
    foreach(string f in Request.Files.AllKeys) {
        HttpPostedFile file = Request.Files[f];
        file.SaveAs("Z:\\" + file.fileName);
    }
}

我們如何在服務器端實現憑據的使用?

在IIS中使用例如Windows身份驗證來保護WebSite。 然后,您可以將您的用戶包含在AD中,並且如果您嘗試訪問該頁面,並且如果不允許該用戶,則會收到錯誤消息。

如果需要檢查單個用戶,則需要在數據庫表中將用戶存儲在某個地方(例如SQL,Oracle,MySQL或任何其他數據庫),然后必須獲取調用Windows用戶的登錄信息,然后檢查他/她可以通過查看db表來訪問您的解決方案。

當然,如果您不需要定義角色等,則可以只在IIS中管理用戶。另請參見以下文章: https : //weblogs.asp.net/owscott/iis-using-windows-authentication-with-minimal-permissions -granted-to-disk (我想這就是您要尋找的!)或特定Windows用戶組的Windows身份驗證https://msdn.microsoft.com/zh-cn/library/ff647405.aspx?f= 255&MSPPError = -2147217396

由於缺少細節,無法為您提供具體的答案,但這就是您可以做到的方式。 一種是Windows身份驗證,一種是IIS,可能是web.config或IIS本身中的用戶管理,另一種解決方案是使調用用戶位於后端,並檢查您的自定義數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM