![]() |
#1 |
Участник
|
![]()
Озабочен такой проблемой. Если сначала логинишься в Web-портал Axapta, то после этого точные ссылки, типа
Code: http://axserver/axweb/default.asp?WMFN=RL_ConfirmableInventJournalTable&WMFT=D&WPG=RLt_HomePageOnline&WTID=154&WREC=302668&WKEY=[/url][65534:302668] Мне нужно было добиться чтобы пользователь, ни разу не залогинившись ранее в портал, тыкал на точную ссылку и попадал куда надо. Т.е. 1. Чтобы происходил автологин в Web подобно авторизации обычного клиента по доменному имени. 2. Чтобы после автологина ссылка корректно обрабатывалась. Первый пункт решился. Т.е. если обратиться на урл портала, то происходит автологин, пользователь "за кадром" логинится соответствующим его сетевому имени Web-пользователем и видит начальную страницу портала. Но если обратиться в первый раз на урл портала с точной ссылкой, то она "теряется" - метод Show() класса WebApplication использует сессию (объект WebSession), с пустым args, хотя он должен содержать распарсенные из урла точной ссылки параметры (WMFN, WKEY и т.д.). Я в концептуальном тупике - не знаю с чего начать, что копать, в каком месте смотреть. Пожалуйста, посоветуйте что-нибудь, буду очень признателен. Last edited by Romb; 12.05.2006 at 13:17. |
|
![]() |
#2 |
Участник
|
Пока писал сообщение понял, что "ошибка" кроется в WebApplication.Logon(), там есть на 60 строчке есть редирект на переданный url (weblink) и так как он пустой, то происходит редирект на урл домашней страницы (а она конечно "чистая" без параметров в урле) и, в этом случае все параметры теряются.
Code: webSession.redirect(redirectTo); Уф... Надеюсь на правильном пути. |
|
![]() |
#3 |
Участник
|
Quote:
Originally Posted by Romb
Первый пункт решился...
|
|
![]() |
#4 |
Участник
|
Там проблема в том, что в web-приложении (функция Axapta() в файле i_axaptafunctions.asp) в строках:
Code: userid = Ws.Call("SwitchAxaptaUser") if (Not (userid = "")) then password = Ws.Call("switchWebUserPassword") weblogin = Ws.Call("SwitchWebUser") ... По идее надо обновлять переменную _switchWebUser, в том же месте, где и устанавливается _switchAxaptaUser (метод WebApplication.Logon()). Но пока я сделал заплатку, она работает. Я изменил метод WebSession.SwitchWebUser(). Code: WebLogin switchWebUser() { ; if (_switchAxaptaUser) _switchWebUser = (select firstonly WebLogin from WebUser where WebUser.UserId == _switchAxaptaUser).WebLogin; return _switchWebUser; } Да. Чтобы это все работало IIS должен использовать "Integrated Windows Authentification". Last edited by Romb; 15.05.2006 at 05:12. |
|
|
This post has been rated by: leshy (1). |
![]() |
#5 |
Участник
|
Это конечно забавно, но я порешал и остальные свои проблемы с Web-порталом, расскажу чуть позже.
![]() |
|
Tags |
enterprise portal, portal |
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread |
Display Modes | |
|