3

今のところ、単純なトークンによって特定のアプリケーションへのアクセスを制限するためだけに、単純な認証をDataServicesに追加したいと思います。

ドメイン認証やフォーム認証は必要ありません。

私はここで認証についてたくさん読みました:

http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx

残念ながら、それはすべて大量の作業を必要とします。とりわけ、カスタムIHttpModuleを作成します。もっと簡単な解決策があるはずです。

クライアント(WPF)でオブジェクトコンテキストを作成すると、資格情報を追加できることを知っています。

Uri uri = new Uri("http://localhost/myapp/odata.svc");

MyEntities ent= new MyEntities (uri);
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");

しかし、どこでそれらを読むことができますか(カスタムIHttpModuleの実装なしで)?

たとえば、データサービスの実装であるクラスで何かを使用できると思いました。

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
 string cred = args.OperationContext.AbsoluteRequestUri.UserInfo;
}

私はUserInfoに精通していませんが、その説明は「ユーザー名、パスワード、...を取得します」です。

だから私は2つの主な質問があります:

  1. ent.Credentials = new NetworkCredential( "token"、 "zx5as9vxc5sa9h0vb6523cv56");と入力すると、含まれている資格情報をどこで読み取ることができますか。

  2. クライアントアプリでUserInfoを設定し、OnStartProcessingRequestメソッドで使用できる場所(可能な場合)。

よろしく、ダニエルSkowroński

4

1 に答える 1

3

認証と WCF データ サービス (OData プロトコルの .NET 実装) に関する一連の投稿があります: http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

そこでは、さらに多くの情報を見つけることができるはずです (コード サンプルを含む)。

于 2010-08-18T09:51:28.067 に答える