Как мне создать веб-страницу в CRM, которая говорит о веб-сервисе для IFD и On-Premise? - PullRequest
0 голосов
/ 17 апреля 2009

У нас есть три сервера, которые совместно используют одну базу данных. Один сервер подключен к Интернету.

У меня есть веб-страница в IFRAME в CRM, которая общается с веб-службой CRM, используя стандартный метод подключения для локальной сети. Когда этот IFRAME отображается через IFD с пользователями, вошедшими в систему с помощью элемента аутентификации форм, у вас запрашивают учетные данные для входа.

Как мне обойти это?

EDIT

IFRAME, который нацелен на службу CRM, находится на четырех серверах. Два сервера используются для IFD и локального использования. Два других предназначены только для использования в помещении. Они все в одном домене. Все пользователи являются внутренними пользователями, которые могут войти через Интернет, если они используют компьютер или компьютер клиента в интернет-кафе и поэтому не могут использовать VPN.

Ответы [ 3 ]

0 голосов
/ 24 апреля 2009

Я подозреваю, что проблема не в услугах, а в IFrame. Когда вы проходите проверку подлинности в MSCRM через локальную сеть, вы выполняете проверку подлинности Windows, а в случае IFrame этот запрос проверки подлинности выполняется снова. Поскольку браузер знает все, что ему нужно, все обрабатывается прозрачно.

При использовании IFD вы не используете аутентификацию на уровне веб-сервера - вы делаете это, используя формы, основанные на уровне приложения. Вы, IFrame, все еще хотите аутентификацию, и поэтому iframe запрашивает аутентификацию.

Если у вас возникла проблема со службой, отобразился бы IFrame, и при любом действии, вызвавшем вызов службы, произойдет сбой с ошибкой 400 или 500.

Таким образом, возникает вопрос: как создать веб-страницу, которая может обслуживать проверку подлинности Windows и на основе форм? Это легко сделать в MSCRM, сначала убедитесь, что вы не запускаете аутентификацию на веб-странице - установите для нее анонимность. Это гарантирует, что больше не будет всплывающих окон, затем убедитесь, что вы используете код CrmAuthenticationToken, чтобы получить токен и использовать его для всех вызовов. Вы не должны устанавливать свойство .Credentials самой службы.

0 голосов
/ 24 апреля 2009

Предполагая, что вы развертываете свою страницу на веб-сайте CRM (а не в своем собственном виртуальном каталоге), то здесь мы указываем вам статью SDK для того, что упоминал Роберт:

См. Тему SDK под названием: Аутентификация на странице ASPX.

По моему опыту, вы всегда должны использовать CRMImpersonator на своих веб-страницах на веб-сайте CRM.

Теперь, если у вас есть собственная страница на своем веб-сайте: Вам нужно будет посетить сервис Discovery и получить билет CRM для доступа к сервисам.

0 голосов
/ 24 апреля 2009

Несколько вопросов, чтобы лучше понять вашу проблему. Является ли iframe, который предназначается для CrmService, на том же сервере IFD? Находится ли сервер IFD в том же домене, что и остальные серверы? Когда вы говорите, что пользователи вошли в систему, вы судите пользователей локального домена или внешних пользователей?

...