Показать сообщение отдельно
Старый 15.05.2006, 04:53   #4  
Romb is offline
Romb
Участник
Аватар для Romb
 
79 / 22 (1) +++
Регистрация: 06.01.2004
Там проблема в том, что в web-приложении (функция Axapta() в файле i_axaptafunctions.asp) в строках:

Код:
 
        userid = Ws.Call("SwitchAxaptaUser")
        if (Not (userid = "")) then
            password = Ws.Call("switchWebUserPassword")
            weblogin = Ws.Call("SwitchWebUser")
            ...
После того, как Axapta "поняла" с каким доменными userid пользователь пришел к IIS, weblogin приходит пустой, т.е. метод SwitchWebUser у WebSession не возвращает Web-пользователя (переменная _switchWebUser), соответствующего доменному имени.

По идее надо обновлять переменную _switchWebUser, в том же месте, где и устанавливается _switchAxaptaUser (метод WebApplication.Logon()). Но пока я сделал заплатку, она работает. Я изменил метод WebSession.SwitchWebUser().

Код:
WebLogin switchWebUser()
{
    ;

    if (_switchAxaptaUser)
        _switchWebUser = (select firstonly WebLogin from WebUser where WebUser.UserId == _switchAxaptaUser).WebLogin;

    return _switchWebUser;
}
Теперь, если WebUser находится по AxaptaUser, то web-приложение логинится под этим WebUser-ом. Иначе, в моем случае вываливается weblet WebLogin.

Да. Чтобы это все работало IIS должен использовать "Integrated Windows Authentification".

Последний раз редактировалось Romb; 15.05.2006 в 05:12.
За это сообщение автора поблагодарили: leshy (1).