ODATA-データサービスのシンプルな認証
-
29-09-2019 - |
質問
現時点では、Simple Tokenによる特定のアプリケーションのアクセスを制限するために、データサービスに簡単な認証を追加したいと思います。
ドメイン認証やフォーム認証は必要ありません。
ここで認証についてよく読みました:
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つの主な質問があります:
ent.credentials = new NetworkCredential( "token"、 "zx5as9vxc5sa9h0vb6523cv56");
クライアントアプリのuserInfoを設定して、onstartprocessingRequestメソッドで使用できる場所(できれば)はどこにいますか。
よろしく、ダニエル・スコウロスキ
解決
認証とWCFデータサービス(ODATAプロトコルの.NET実装です)に関する一連の投稿があります。 http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/
そこにはもっと多くの情報を見つけることができるはずです(コードサンプルを含む)。