Может кто-нибудь объяснить технические аспекты ASP.Net для приложений физического уровня - PullRequest
1 голос
/ 07 августа 2009

Я разбираюсь в n-уровневых приложениях. Я понимаю разделение уровней кода, например / UI, BL (бизнес-логика), DL (уровень данных).

В приложении ASP.Net вы просто ссылаетесь на проект C #, который выполняет BL и DL, и все в порядке.

Чего я не понимаю, так это как бы вы реализовали это на отдельных серверах? Есть ли у вас DLL для BL и DL в папке bin, но параметр в файле web.config указывает ему, куда обращаться для связи, или у вас есть фактические BL и DL, работающие на отдельном сервере, а затем связь с Интерфейс сделан через веб-сервис?

На данный момент у меня есть стандартное приложение веб-форм ASP.Net, которое должно отделять сторону безопасности от веб-сервера и основного приложения на сервере приложений, однако я не думаю, что это возможно.

Ответы [ 4 ]

1 голос
/ 07 августа 2009

Когда мы плюем на физические уровни, мы используем WCF между уровнями. В итоге вы получите еще больше слоев в своем приложении, поэтому не используйте его, если он вам не нужен.

Типичные слои будут

Уровень клиента

  • UI
  • Бизнес
  • 1012 прокси * *

Уровень сервера

  • Фасад
  • Бизнес
  • доступ к данным

Серверный уровень может быть реализован как один уровень, если вы используете ORM.

0 голосов
/ 07 августа 2009

Если вы хотите, чтобы слои были физически разделены на серверах, вам нужно решить, как эти слои должны взаимодействовать. У вас есть много вариантов для этого: веб-сервисы, Windows Communication Foundation, .Net Remoting ...

  • Сервер приложений - вместо прямого вызова логики безопасности, вызовите веб-службу безопасности на веб-сервере.
  • Веб-сервер - размещает веб-службу безопасности. Веб-сервис здесь выполняет реальную бизнес-логику и может вызывать слой данных.
0 голосов
/ 07 августа 2009

Отдельные серверы повлекут за собой использование некоторых видов веб-сервисов. Здесь на работе:

Сервер (поросенок) - база данных, SQL Server 2005, брандмауэр предотвращает подключения к тигру

Сервер (eeyore) - веб-сервисы - подключается к поросенку

Сервер (tigger) - сервер asp.net - подключается к eeyore, брандмауэр предотвращает подключения к поросенку

Бизнес-логика будет находиться в сборке DLL, используемой уровнем доступа к данным, уровнем представления или обоими, и будет развернута рядом с ними.

0 голосов
/ 07 августа 2009

Это невозможно напрямую без кластеризации, и даже для этого требуются точные копии приложения, работающего на обоих серверах.

Если вы хотите запустить свой уровень безопасности в качестве отдельного сервера, создайте его с помощью веб-служб, сделайте веб-запрос к этой службе и верните (зашифрованный или иным образом) ответ.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ для продолжения Объяснение:

В вашем случае мое приложение безопасности будет работать на сервере, который будет аутентифицировать, шифровать и отвечать на запросы, поступающие к нему с определенного URL-адреса или домена / субдомена. Тогда мое основное приложение может жить на другом сервере, а запросы на аутентификацию и т. Д. Могут быть на дополнительном сервере. Однако проверка подлинности ASP.NET использует ключ уровня компьютера для создания уникальной соли для токена проверки подлинности. Поэтому для совместного использования токенов авторизации между несколькими машинами ваши машинные ключи должны быть идентичны в файле machine.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...