19.07.2010, 09:24 | #1 |
Участник
|
Постоянный запрос авторизации
Есть небольшая проблема - с ней конечно жить можно, но весьма неудобно. Проблема вот в чем - я владелец некоторой сущности new_web. И когда я, или кто-нибудь другой открывает форму ИМЕННО моей сущности, но выскакивает окошко с запросом авторизироваться в системе. Каждый раз. Помогите разобраться, в чем причина такого поведения системы? Проверка подлинности пользователя в IE у меня стоит "Автоматический вход с текущим именем пользователя и паролем"
|
|
19.07.2010, 09:28 | #2 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
Есть небольшая проблема - с ней конечно жить можно, но весьма неудобно. Проблема вот в чем - я владелец некоторой сущности new_web. И когда я, или кто-нибудь другой открывает форму ИМЕННО моей сущности, но выскакивает окошко с запросом авторизироваться в системе. Каждый раз. Помогите разобраться, в чем причина такого поведения системы? Проверка подлинности пользователя в IE у меня стоит "Автоматический вход с текущим именем пользователя и паролем"
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
19.07.2010, 09:45 | #3 |
Участник
|
Пожалуйста
Код: 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 |
Чайный пьяница
|
Цитата:
Сообщение от 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 |
Участник
|
Попробовал. К сожалению не помогло, так же спрашивает авторизацию у других пользователей постоянно. У меня только 1 раз при входе.
|
|
19.07.2010, 10:37 | #6 |
Чайный пьяница
|
Есть подозрение, что проблема заключается именно в скриптах. Попробуйте отключить скрипт на зазрузку полностью. Если проблема исчезнет, то проблема - в скрипте и следует по частям проверять скрипт и смотреть на каком этапе возникает окно аутентификации.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Tarasov E (1). |
19.07.2010, 11:12 | #7 |
Участник
|
Действительно, после отключения события на онлоад, спрашивать перестало...Значит все таки при проверки роли пользователя где-то что-то происходит не то.
|
|
19.07.2010, 18:42 | #8 |
Участник
|
Вряд ли. Скорее при загрузке IFrame.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|