2009-05-20 21 views
2

具体的には、Webサービスへのアクセスを許可するために、受信X.509セキュリティ証明書をデータベースに対して検証する必要があります。これを行うには、クライアントから送信された証明書のコピーを取得する必要があります。私は、httpリクエストオブジェクト(本質的なASP.NETオブジェクト)にアクセスする方法を理解できれば、その方法を知っていると思います。Webサービスコード(C#)から組み込みASP.NETオブジェクトにアクセスするにはどうすればよいですか?

これを行うコンポーネントを作成する方法と、aspxページのページロードイベントのコードビハインドにロードする方法について説明する次のコードが見つかりました。それは素晴らしいことですが、私は記事から多くを学んだのですが、それでも私の問題には対処していません - ウェブページがないので、ページロードイベントはありません。

HOW TO:私はC#と.NET 3.5を使用していますが、私は、C#の高度なコーディング機能を使用していないビジュアルC#.NET http://support.microsoft.com/kb/810928

を使用して.NETコンポーネントからのアクセスASP.NETの組み込みオブジェクト(ラムダ、拡張メソッドなど)。私はまだそれらを使用する方法を学ぶ時間を入れていません...

ヒント、ポインタ、サンプルコードは大歓迎です。 おかげで、 デイブ

+0

WCF –

+0

でも簡単に見つかるかもしれませんが、それは私が探検する時間がなかった別の技術です。私が持っているのは、現在2パート認証が必要な作業用Webサービスです。 – DaveN59

答えて

4

それがASMX Webサービス(ならそれは、「ページ」/エントリポイントがsomefile.asmxで、それはそこからリクエストオブジェクトにアクセスするのと同じくらい簡単であるべきである

例: Visual StudioでWebサービスアプリケーションを作成し、service1.asmx.csに次のコードを貼り付けます(以下の例では、Webリクエストにあったすべてのヘッダーの名前が返されます)。

service1.asmx.csの内容)

 

using System; 
using System.Web; 
using System.Web.Services; 

namespace WebServiceIntrinsicObjects 
{ 
    /// 
    /// Summary description for Service1 
    /// 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService] 
    public class Service1 : System.Web.Services.WebService 
    { 

     [WebMethod] 
     public string HelloWorld() 
     { 
      // HERE'S THE LINE: just get the request object from HTTPContext.Current (a static that returns the current HTTP context) 
      string test = string.Join(",", HttpContext.Current.Request.Headers.AllKeys); 
      return test; 
     } 
    } 
} 
 
+0

それはそうです!私はそれが簡単だと分かっていましたが、Webを検索するのに1〜2時間は明快さよりも混乱が生じました。ありがとう! – DaveN59

+0

うれしい私は助けることができました! – JMarsch

関連する問題