![](/img/trans.png)
[英]Send parts of a byte[] by webclient to create a large file in server side
[英]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.