2011-07-22 12 views
0

私はC#を使用してSOAP - > Webサービス構造を持っています。 IISのWindows認証が有効になっているので、サービスインスタンスのClientCredentialsにDefaultNetworkCredentialsを追加しています。これらの資格情報を使用してWebサービスにアクセスできます。これは問題ではありません。C#でアクセスコントロールの資格情報を使用する

このサービスにアクセスしようとしているユーザーによっては、Webサービスに含まれる特定の情報へのアクセスを制限したいと考えています。資格情報をパラメータとして、または他の方法で渡すことによって、資格情報からユーザー情報を取得する方法がわかりません。どんな提案も役に立ちます。

ありがとうございます!

答えて

2

IISの実際の.asmxファイルにアクセスできるかどうかは、Windows認証によって決まります。

Webサービスコード内でHttpContext.Current.Userを使用して、現在ログオンしているユーザーの名前を確認し、そこからアクションを実行する権限を検証することもできます。

+0

アーロンと混乱して申し訳ありません。はい、あなたが言ったことは完璧ですが、私はユーザーがWebサービス側にいるかどうかを知る必要があります。ユーザー名をプレーンテキスト、または暗号化されたデータとしてパラメータとして渡すと、簡単になりすましてWebサービスを利用できると私は信じています。 これは、ユーザー名を偽装する可能性なしに実行できることは分かっていますか?または、より洗練されたソリューションがありますか? 注:ネットワークやセキュリティの背景がありません。 – Tizz

+0

私の答えをより簡潔に編集しました。 HttpContext.Current.UserはWindows認証と組み合わせて、正しく設定されていると偽装できません。 web.configまたはIISで他の認証方法を無効にしたい場合があります。 –

関連する問題