AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.07.2010, 09:24   #1  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Постоянный запрос авторизации
Есть небольшая проблема - с ней конечно жить можно, но весьма неудобно. Проблема вот в чем - я владелец некоторой сущности new_web. И когда я, или кто-нибудь другой открывает форму ИМЕННО моей сущности, но выскакивает окошко с запросом авторизироваться в системе. Каждый раз. Помогите разобраться, в чем причина такого поведения системы? Проверка подлинности пользователя в IE у меня стоит "Автоматический вход с текущим именем пользователя и паролем"
Миниатюры
Нажмите на изображение для увеличения
Название: screen2.jpg
Просмотров: 211
Размер:	89.8 Кб
ID:	5966  
Старый 19.07.2010, 09:28   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Есть небольшая проблема - с ней конечно жить можно, но весьма неудобно. Проблема вот в чем - я владелец некоторой сущности new_web. И когда я, или кто-нибудь другой открывает форму ИМЕННО моей сущности, но выскакивает окошко с запросом авторизироваться в системе. Каждый раз. Помогите разобраться, в чем причина такого поведения системы? Проверка подлинности пользователя в IE у меня стоит "Автоматический вход с текущим именем пользователя и паролем"
Скрипт онлоада опубликуйте, пожалуйста.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 19.07.2010, 09:45   #3  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Пожалуйста
Код:
crmForm.all.new_comment.style.weight="230px";
crmForm.all.new_startparse.style.height="90px";
crmForm.all.new_endparse.style.height="90px";
var url="http://vms2:5555/ISV/pages/scaner/history.aspx?"+"&Param1="+crmForm.all.new_history.value; 
crmForm.all.IFRAME_result.src=url;

//Если у пользователя есть роль Системный администратор, то скрываем поле xxx вместе с отображаемой подписью
if(UserHasRole("Системный администратор"))
{

}
else
{
crmForm.all.new_url.Disabled = true;
crmForm.all.new_startparse.Disabled = true;
crmForm.all.new_endparse.Disabled = true;
crmForm.all.new_post.Disabled = true;
crmForm.all.new_enc.Disabled = true;
crmForm.all.new_purpose.Disabled = true;
crmForm.all.new_replace.Disabled = true;
crmForm.all.new_paste.Disabled = true;
}

//Проверяем, есть ли у пользователя запрашиваемая роль
function UserHasRole(roleName) {
    // получаем текущие роли пользователя
	var oXml = GetCurrentUserRoles();
	if(oXml != null) {
		var roles = oXml.selectNodes("//BusinessEntity/q1:name");
		if(roles != null) {
			for( i = 0; i < roles.length; i++) {
				if(roles[i].text == roleName) {
                    // возвращаем true если у пользователя есть эта роль
					return true;
				}
			}
		}
	}
    // в противном случаи возвращаем false
	return false;
}

//Выцепляем все роли пользователя
function GetCurrentUserRoles() {
	var xml = "" +
	"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
	"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
	GenerateAuthenticationHeader() +
	"<soap:Body>" +
	" <RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
	" <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
	" <q1:EntityName>role</q1:EntityName>" +
	" <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +
	" <q1:Attributes>" +
	" <q1:Attribute>name</q1:Attribute>" +
	" </q1:Attributes>" +
	" </q1:ColumnSet>" +
	" <q1:Distinct>false</q1:Distinct>" +
	" <q1:LinkEntities>" +
	" <q1:LinkEntity>" +
	" <q1:LinkFromAttributeName>roleid</q1:LinkFromAttributeName>" +
	" <q1:LinkFromEntityName>role</q1:LinkFromEntityName>" +
	" <q1:LinkToEntityName>systemuserroles</q1:LinkToEntityName>" +
	" <q1:LinkToAttributeName>roleid</q1:LinkToAttributeName>" +
	" <q1:JoinOperator>Inner</q1:JoinOperator>" +
	" <q1:LinkEntities>" +
	" <q1:LinkEntity>" +
	" <q1:LinkFromAttributeName>systemuserid</q1:LinkFromAttributeName>" +
	" <q1:LinkFromEntityName>systemuserroles</q1:LinkFromEntityName>" +
	" <q1:LinkToEntityName>systemuser</q1:LinkToEntityName>" +
	" <q1:LinkToAttributeName>systemuserid</q1:LinkToAttributeName>" +
	" <q1:JoinOperator>Inner</q1:JoinOperator>" +
	" <q1:LinkCriteria>" +
	" <q1:FilterOperator>And</q1:FilterOperator>" +
	" <q1:Conditions>" +
	" <q1:Condition>" +
	" <q1:AttributeName>systemuserid</q1:AttributeName>" +
	" <q1:Operator>EqualUserId</q1:Operator>" +
	" </q1:Condition>" +
	" </q1:Conditions>" +
	" </q1:LinkCriteria>" +
	" </q1:LinkEntity>" +
	" </q1:LinkEntities>" +
	" </q1:LinkEntity>" +
	" </q1:LinkEntities>" +
	" </query>" +
	" </RetrieveMultiple>" +
	" </soap:Body>" +
	"</soap:Envelope>" +
	"";

	var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");

	xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
	xmlHttpRequest.setRequestHeader("SOAPAction"," http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
	xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
	xmlHttpRequest.send(xml);

	var resultXml = xmlHttpRequest.responseXML;
	return(resultXml);
}
Clone = function() {

	var cloneUrl  = location.pathname + "?";
	cloneUrl += "_CreateFromType=" + crmForm.ObjectTypeCode;
	cloneUrl += "&_CreateFromId=" + crmForm.ObjectId;
    if (crmForm.ObjectTypeCode > 9999)
    	cloneUrl += "&etc=" + crmForm.ObjectTypeCode;
    cloneUrl += "#";

	var cloneFeatures = 'toolbars=0,status=1,width=' + document.body.offsetWidth + 'height=' + document.body.offsetHeight;   

	window.open(cloneUrl,'',cloneFeatures);
}
Думаете из-за проверки роли пользователя такая ерунда?
Старый 19.07.2010, 10:02   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Пожалуйста
Код:
crmForm.all.new_comment.style.weight="230px";
crmForm.all.new_startparse.style.height="90px";
crmForm.all.new_endparse.style.height="90px";
var url="http://vms2:5555/ISV/pages/scaner/history.aspx?"+"&Param1="+crmForm.all.new_history.value; 
crmForm.all.IFRAME_result.src=url;

//Если у пользователя есть роль Системный администратор, то скрываем поле xxx вместе с отображаемой подписью
if(UserHasRole("Системный администратор"))
{

}
else
{
crmForm.all.new_url.Disabled = true;
crmForm.all.new_startparse.Disabled = true;
crmForm.all.new_endparse.Disabled = true;
crmForm.all.new_post.Disabled = true;
crmForm.all.new_enc.Disabled = true;
crmForm.all.new_purpose.Disabled = true;
crmForm.all.new_replace.Disabled = true;
crmForm.all.new_paste.Disabled = true;
}

//Проверяем, есть ли у пользователя запрашиваемая роль
function UserHasRole(roleName) {
    // получаем текущие роли пользователя
	var oXml = GetCurrentUserRoles();
	if(oXml != null) {
		var roles = oXml.selectNodes("//BusinessEntity/q1:name");
		if(roles != null) {
			for( i = 0; i < roles.length; i++) {
				if(roles[i].text == roleName) {
                    // возвращаем true если у пользователя есть эта роль
					return true;
				}
			}
		}
	}
    // в противном случаи возвращаем false
	return false;
}

//Выцепляем все роли пользователя
function GetCurrentUserRoles() {
	var xml = "" +
	"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
	"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
	GenerateAuthenticationHeader() +
	"<soap:Body>" +
	" <RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
	" <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
	" <q1:EntityName>role</q1:EntityName>" +
	" <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +
	" <q1:Attributes>" +
	" <q1:Attribute>name</q1:Attribute>" +
	" </q1:Attributes>" +
	" </q1:ColumnSet>" +
	" <q1:Distinct>false</q1:Distinct>" +
	" <q1:LinkEntities>" +
	" <q1:LinkEntity>" +
	" <q1:LinkFromAttributeName>roleid</q1:LinkFromAttributeName>" +
	" <q1:LinkFromEntityName>role</q1:LinkFromEntityName>" +
	" <q1:LinkToEntityName>systemuserroles</q1:LinkToEntityName>" +
	" <q1:LinkToAttributeName>roleid</q1:LinkToAttributeName>" +
	" <q1:JoinOperator>Inner</q1:JoinOperator>" +
	" <q1:LinkEntities>" +
	" <q1:LinkEntity>" +
	" <q1:LinkFromAttributeName>systemuserid</q1:LinkFromAttributeName>" +
	" <q1:LinkFromEntityName>systemuserroles</q1:LinkFromEntityName>" +
	" <q1:LinkToEntityName>systemuser</q1:LinkToEntityName>" +
	" <q1:LinkToAttributeName>systemuserid</q1:LinkToAttributeName>" +
	" <q1:JoinOperator>Inner</q1:JoinOperator>" +
	" <q1:LinkCriteria>" +
	" <q1:FilterOperator>And</q1:FilterOperator>" +
	" <q1:Conditions>" +
	" <q1:Condition>" +
	" <q1:AttributeName>systemuserid</q1:AttributeName>" +
	" <q1:Operator>EqualUserId</q1:Operator>" +
	" </q1:Condition>" +
	" </q1:Conditions>" +
	" </q1:LinkCriteria>" +
	" </q1:LinkEntity>" +
	" </q1:LinkEntities>" +
	" </q1:LinkEntity>" +
	" </q1:LinkEntities>" +
	" </query>" +
	" </RetrieveMultiple>" +
	" </soap:Body>" +
	"</soap:Envelope>" +
	"";

	var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");

	xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
	xmlHttpRequest.setRequestHeader("SOAPAction"," http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
	xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
	xmlHttpRequest.send(xml);

	var resultXml = xmlHttpRequest.responseXML;
	return(resultXml);
}
Clone = function() {

	var cloneUrl  = location.pathname + "?";
	cloneUrl += "_CreateFromType=" + crmForm.ObjectTypeCode;
	cloneUrl += "&_CreateFromId=" + crmForm.ObjectId;
    if (crmForm.ObjectTypeCode > 9999)
    	cloneUrl += "&etc=" + crmForm.ObjectTypeCode;
    cloneUrl += "#";

	var cloneFeatures = 'toolbars=0,status=1,width=' + document.body.offsetWidth + 'height=' + document.body.offsetHeight;   

	window.open(cloneUrl,'',cloneFeatures);
}
Думаете из-за проверки роли пользователя такая ерунда?
Попробуйте строку

Код:
var url="http://vms2:5555/ISV/pages/scaner/history.aspx?"+"&Param1="+crmForm.all.new_history.value;
Сменить на строку

Код:
var url="/ISV/pages/scaner/history.aspx?"+"&Param1="+crmForm.all.new_history.value;
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 19.07.2010, 10:33   #5  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Попробовал. К сожалению не помогло, так же спрашивает авторизацию у других пользователей постоянно. У меня только 1 раз при входе.
Старый 19.07.2010, 10:37   #6  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Попробовал. К сожалению не помогло, так же спрашивает авторизацию у других пользователей постоянно. У меня только 1 раз при входе.
Есть подозрение, что проблема заключается именно в скриптах. Попробуйте отключить скрипт на зазрузку полностью. Если проблема исчезнет, то проблема - в скрипте и следует по частям проверять скрипт и смотреть на каком этапе возникает окно аутентификации.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Tarasov E (1).
Старый 19.07.2010, 11:12   #7  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Действительно, после отключения события на онлоад, спрашивать перестало...Значит все таки при проверки роли пользователя где-то что-то происходит не то.
Старый 19.07.2010, 18:42   #8  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Действительно, после отключения события на онлоад, спрашивать перестало...Значит все таки при проверки роли пользователя где-то что-то происходит не то.
Вряд ли. Скорее при загрузке IFrame.
__________________
Опыт позволяет ошибаться гораздо увереннее.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите написать SOAP запрос kolya.master Dynamics CRM: Разработка 8 01.12.2009 16:47
Ошибка авторизации при выполнении запроса Dark_Angel Dynamics CRM: Разработка 0 03.09.2009 17:23
Вылазит запрос авторизации при открытии шаблона эл. почты vital.mih Dynamics CRM: Функционал 0 06.05.2009 10:21
Запрос в SQL AlekseyS Dynamics CRM: Разработка 1 26.08.2008 11:01
Проблема - Запрос с параметром Bakai Madybaev Dynamics CRM: Разработка 3 18.08.2008 07:22

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:19.