Несколько Membershipprovider для одного приложения - PullRequest
1 голос
/ 08 октября 2009

У меня есть сайт, который использует SqlMembershiprovider. Это интернет-магазин. Пользователь входит в систему со своим именем пользователя и паролем.

Кроме того, есть контроллер, который отвечает за отображение деталей доставки для заказов, импортированных из другой системы. Эти заказы не имеют связи с пользователями в системе членства. Для отображения деталей доставки необходимо указать номер заказа и токен, который напечатан на счете.

Чтобы разрешить доступ, я хотел бы реализовать пользовательский членство в членстве, которое используется только для этого одного контроллера. Можно ли использовать 2 разных провайдера для одного приложения?

EDIT

Есть несколько страниц, к которым пользователь может получить доступ после того, как он предоставил номер заказа и токен.

Ответы [ 2 ]

1 голос
/ 08 октября 2009

Я не думаю, что вам нужен отдельный поставщик членства. Просто сделайте это действие и связанные действия общедоступными (не украшайте атрибутом 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);
}
0 голосов
/ 08 октября 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...