2017-09-18 14 views
0

コンソールアプリケーション(C#)とWebサーバー(IIS)があります。コンソールアプリケーションはHTTPS POSTを介してWebサーバーにファイルを送信する必要があります。ここで、Console AppとWeb Serverの間に認証を追加する必要があり、WebClientのCredentialsシステムを使用しようとしています。サーバー側の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); 
    } 
} 

どのように我々は、サーバー側での資格情報の使用を実装していますか?

+0

サーバサイドではどの認証「システム」を使用していますか? IIS認証/独自のカスタム認証? – STORM

+0

@STORM私たちは現時点では何も持っていないと思います。コンソールアプリケーションのコードだけで動作するものが必要です。この場合、IIS認証は動作しますか? – ReignOfComputer

+0

イントラネットまたはエクストラネット/インターネット内にいますか? – STORM

答えて

1

たとえば、IISのWindows認証を使用してWebサイトを保護します。その後、ユーザーはAD内にいることができます。ページにアクセスしようとすると、ユーザーが許可されていないとエラーが表示されます。

シングルユーザーをチェックする必要がある場合は、DBテーブル内のどこかに(多分SQL、Oracle、MySQLまたは他のDB)のユーザーを格納してから、呼び出し元のWindowsユーザーのログイン情報を取得し、 dbテーブルを調べて、ソリューションにアクセスできるかどうかを確認してください。

あなたはいけない場合、あなただけのも、この記事を参照してくださいなど、役割を定義する必要がIISでユーザーを管理することができます。もちろん、

https://weblogs.asp.net/owscott/iis-using-windows-authentication-with-minimal-permissions-granted-to-disk(私の事はこの1つはあなたが探しているものです!)、またはWindows Authentication for Specific windows user groupまたはhttps://msdn.microsoft.com/en-us/library/ff647405.aspx?f=255&MSPPError=-2147217396

詳細が不明なため、具体的な回答をすることはできませんが、できることはそうです。 1つはWindows認証です.Web.configやIIS自体の多分ユーザー管理の中にあるIISです。あるいは、他の解決策は、バックエンドで呼び出し元のユーザーを取得し、カスタムのデータベースに対してチェックすることです。

関連する問題