1

SqlMembershiproviderを使用するサイトがあります。それはウェブショップです。ユーザーはそこで自分のユーザー名とパスワードを使用してログオンします。

それとは別に、別のシステムからインポートされた注文の配達の詳細を表示するコントローラーがあります。これらの注文は、メンバーシップシステムのユーザーとは関係ありません。配達の詳細を表示するには、請求書に印刷されている注文番号とトークンを指定する必要があります。

アクセスを許可するために、この単一のコントローラーにのみ使用されるカスタムmembershiproviderを実装したいと思います。1つのアプリケーションに2つの異なるプロバイダーを使用することは可能ですか?

編集

注文番号とトークンを入力すると、ユーザーがアクセスできるページがいくつかあります。

4

1 に答える 1

1

別の会員プロバイダーは必要ないと思います。そのアクションと関連するアクションを公開するだけです(AuthorizeAttributeで装飾しないでください)。次に、提供された注文番号と請求書トークンが有効であることを要求します。つまり、注文番号とそれに関連付けられたトークンがある場合は、配達の詳細を表示できます。これは、他のシステムから提供されたデータと一致することを確認するだけで確認できます。

[AcceptVerbs( HttpVerbs.Post )]
public ActionResult DeliveryDetails( string orderNumber, string invoiceToken )
{
      var order = otherDb.Orders
                         .Where( o => o.OrderNumber == orderNUmber
                                      && o.InvoiceToken == invoiceToken )
                         .SingleOrDefault();

      if (order == null)
      {
          return View("Error");
      }

      return View(order);
}
于 2009-10-08T12:35:39.597 に答える