Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ASP.NET Новый топик    Ответить
 Вход в систему не произведен: имя пользователя или пароль не опознаны  [new]
Александр Рязанов
Member

Откуда:
Сообщений: 2
Добрый день.

Подскажите,кто сталкивался:

определяю имя пользователя
string str = GetUserProperty(HttpContext.Current.User.Identity.Name, "name");
....

protected string GetUserProperty(string strLogin, string strProperty)
        {
            string str = "";
            // Parse the string to check if domain Name is present.
            int idx = strLogin.IndexOf('\\');
            if (idx == -1)
            {
                idx = strLogin.IndexOf('@');
            }

            string strDomain;
            string strName;

            if (idx != -1)
            {
                strDomain = strLogin.Substring(0, idx);
                strName = strLogin.Substring(idx + 1);
            }
            else
            {
                strDomain = Environment.MachineName;
                strName = strLogin;
            }

            DirectoryEntry obDirEntry = null;
            try
            {
                using (HostingEnvironment.Impersonate())
                {
                   // obDirEntry = new DirectoryEntry("WinNT://" + strDomain + "/" + strName);
                    obDirEntry = new DirectoryEntry("LDAP://" + strDomain);


                    using (DirectorySearcher adSearch = new DirectorySearcher(obDirEntry))
                    {
                        adSearch.Filter = "(sAMAccountName=" + strName + ")";
                        //adSearch.PropertiesToLoad.Add(strProperty);

                        SearchResult adSearchResult = adSearch.FindOne();


                        ResultPropertyCollection coll = adSearchResult.Properties;
                        object obVal = coll[strProperty][0];
                        str = obVal.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                str = "";
                Trace.Write(ex.Message);
            }
            return str;
        }
при запуске из студио все работает нормально, после публикации идут ошибки не может найти пользователя...

проблема начинается со строки

obDirEntry = new DirectoryEntry("LDAP://" + strDomain);
и на строке
SearchResult adSearchResult = adSearch.FindOne();
уходит в обработчик ошибок.
текст ошибки
"Вход в систему не произведен: имя пользователя или пароль не опознаны"
Модератор: Отредактировано. Используйте SRC.
9 фев 11, 13:59    [10208263]     Ответить | Цитировать Сообщить модератору
 Re: Вход в систему не произведен: имя пользователя или пароль не опознаны  [new]
Denis Gladkikh
Member

Откуда: Ярославль
Сообщений: 208
Блог
Александр Рязанов,

код прочитать нереально (пользуйтесь все таки подстветкой синтаксиса), но дам предположение - скорее всего определяете домен и входите в него при помощи пользователя под которым крутиться пул приложения. Так же на сервере и у вас разные настройки имперсанализации. У вас на машине скорее всего включена, и вы можете зайти в домен, а на сервере нет (и пользователь, под которым крутиться пул, не может зайти).
10 фев 11, 12:02    [10213268]     Ответить | Цитировать Сообщить модератору
 Re: Вход в систему не произведен: имя пользователя или пароль не опознаны  [new]
Александр Рязанов
Member

Откуда:
Сообщений: 2
Denis Gladkikh,

Публикую на локальный ISS на той же машине что и проходит разработка.
11 фев 11, 14:21    [10221036]     Ответить | Цитировать Сообщить модератору
 Re: Вход в систему не произведен: имя пользователя или пароль не опознаны  [new]
Zoria
Member

Откуда:
Сообщений: 12128
Александр Рязанов,

а из студии вы запускаете через iis или через встроенный кассини?
11 фев 11, 14:28    [10221121]     Ответить | Цитировать Сообщить модератору
 Re: Вход в систему не произведен: имя пользователя или пароль не опознаны  [new]
Denis Gladkikh
Member

Откуда: Ярославль
Сообщений: 208
Блог
Александр Рязанов
Denis Gladkikh,

Публикую на локальный ISS на той же машине что и проходит разработка.

ISS = IIS как я понимаю?
То есть разрабатываете на VS Dev Web Server, и потом публикуете на IIS. Ну тогда 100% ошибка в том, что я описал. Ваш процесс запускается (на VS Web сервере) под вами, и ваш пользователь уже в домене. А IIS запускает свой процесс под пользователем этой машины, и к домену не имеет доступ. Сделайте настройки, либо имперсанализация, либо лучше входите в DirectoryEntry со специальным установленным для домена пользователем (укажите его логин и пароль).
11 фев 11, 14:31    [10221151]     Ответить | Цитировать Сообщить модератору
Все форумы / ASP.NET Ответить
 
Лучший учебный центр Microsoft!
Новейшие курсы Microsoft SQL Server 2014!
ОЧЕНЬ привлекательные цены на курсы Oracle — от 26 тыс.руб.!
Все курсы по базам данных: Microsoft SQL Server 2014, Oracle, IBM DB2, Access, MySql