Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация через WCF, Вопрос по возвращению статуса авторизаци 
:(
    Опции темы
freem4n
  Дата 18.1.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.5.2006
Где: Краснодар

Репутация: нет
Всего: 1



Доброго времени суток! Есть следующая задачка:
Код

 public class VerifyDigSignature : IVerifyDigSugnature
    {
        bool bLoginIn;
        public void LogOut()
        {
            bLoginIn = false;
        }

        public void LogIn(string username, string password)
        {
            if (username == "admin" && password == "123")
            {
                bLoginIn = true;
            }
        }
    
        public bool IsLogIn()
        {
            return bLoginIn;
        }

Но этот код не работает так как надо, функция isLogIn() всегда возвращает ЛОЖЬ несмотря на предыдущие вызовы. Кто знает как можно решить данный вопрос.
PM MAIL WWW ICQ MSN   Вверх
jonie
Дата 18.1.2011, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



freem4n, я бы использовал авторизацию ASP.NET-та (и в web.config поставил бы aspnetcompatibility=true), если вам так надо свою велосипедную (надо прочитать про безопасность в wcf перед тем как так делать) авторизацию....
Т.е. нечто вроде:

Код

void Login(){
            //perform asp.net auth if needed
            if (HttpContext.Current.User.Identity.IsAuthenticated == false)
            {
                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, // version
                                                                                     dbUser.UserName, // user name
                                                                                     DateTime.Now, // creation
                                                                                     DateTime.Now.AddHours(12),// Expiration
                                                                                     credential.IsPersistent,// Persistent (remember me)
                                                                                     string.Empty); // User data

                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                HttpContext.Current.Response.Cookies.Add(authCookie);
            }
}

....
        public void Logout()
        {
            FormsAuthentication.SignOut();
            HttpContext.Current.Session.Abandon();
            
            // clear authentication cookie
            HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
            cookie1.Expires = DateTime.Now.AddYears(-1);
            HttpContext.Current.Response.Cookies.Add(cookie1);

            // clear session cookie
            HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
            cookie2.Expires = DateTime.Now.AddYears(-1);
            HttpContext.Current.Response.Cookies.Add(cookie2);
        }



в web.config:
Код

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
....


Это сообщение отредактировал(а) jonie - 18.1.2011, 11:51


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
freem4n
Дата 18.1.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.5.2006
Где: Краснодар

Репутация: нет
Всего: 1



К сожалению так не подходит по ряду технических причин. Если есть какие либо ссылки на инфу по безопастности wcf на любом языке буду признателен! В гугле был в основе все сыллаются на этот метод.
PM MAIL WWW ICQ MSN   Вверх
jonie
Дата 18.1.2011, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



freem4nhttp://www.techdays.ru/videos/1331.html
и другие части.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
freem4n
Дата 18.1.2011, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.5.2006
Где: Краснодар

Репутация: нет
Всего: 1



jonie, спасибо. С самой системой безопастности я разобрался.Может вопрос поставил не совсем корректно. Самое главное для меня понять как можно дёргая функциями изменять приватную переменную, в последствии получать её значение на клиенте. Заранее благодарю всех кто откликнется.
PM MAIL WWW ICQ MSN   Вверх
jonie
Дата 19.1.2011, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



freem4n, ну просто надо понимать что например http это протокол без поддержки связи.
Можно, конечно, поиграться с количеством инстансов. Покурите этот атрибут
Код

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 




--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.