0

ASP.NET Web サイトを開発しています。認証/承認を保証するためにフォーム認証を使用する予定ですが、承認に関して次の 2 つの問題に直面しています。

  1. 認証されたユーザーが Web ページ (myPage.aspx など) にアクセスできるように Web 構成で設定する方法を知っています。しかし、UserA が myPage にアクセスして、UserB の情報ではなく、自分の情報を取得できると定義する方法がわかりません。ユーザーの認証時にトークンを生成することを考えていたので、このトークンが誰に属しているかを確認し、この情報が彼に利用可能かどうかを確認できます。このアプローチについてどう思いますか?フォーム認証はそのようなトークンを生成しますか? (私の調査では、それについての言及は見つかりませんでした)。そうでない場合、生成するためにフォーム認証メカニズムを適応させることができますか、それともすべてを自分で作成する必要がありますか?

  2. Web サービスにアクセスしたいのですが、これらはユーザーがログインしている場合にのみ情報を返す必要があります。このため、上記で説明したものと同じトークンを使用したいと思います。あなたはそれについてどう思いますか?それは良いアプローチですか?

認証/承認メカニズムの設計経験がないため、これを求めています。ヘルプ/ヒントをいただければ幸いです。

4

1 に答える 1

1

質問1に関しては、ASP.Net Webフォームアプリでフォーム認証が行われた後、ユーザーのIDがPage.User.IdentityプロパティのFormsIdentityオブジェクトとして公開されます。このオブジェクトには、ユーザーがサイトへのログインに使用するユーザー名を含むNameプロパティがあります。この値を使用して、ユーザーがアクセスできるものを制限できます。たとえば、データベースに次のフィールドを含むユーザー情報を含むテーブルがあるとします。

userId int
userName varchar(25)
...more fields containing user information...

直接ADO.Netを使用している場合は直接、またはORMマップ(つまり、nHibernateまたはEF)ドメインオブジェクト。

質問2に関して、Page.User.Identityによって公開されるFormsIdentityオブジェクトには、ブール値の「IsAuthenticated」プロパティがあります。これを使用して、次のようにWebサービスへのアクセスを制限できます。

if(Page.User.Identity.IsAuthenticated)
{
     //Call your web service in a secure manner
}
于 2012-01-24T20:30:52.537 に答える