繁体   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