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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйста с "переводом" php - asp.net 
:(
    Опции темы
JaguarSmith
  Дата 6.6.2012, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Здравствуйте люди добрые!

Есть такой замечательный сервис ecwid, а в нем есть замечательная возможность SSO ((Single Sign-On API) документация и примеры у них даны под разработку на php.
Так вот - понадобилось мне реализовать это самое SSO для модуля dotnetnuke (asp.net) и вот что у меня получилось:
исходный код на php
Код

<?php
if (!$_REQUEST['logoff']) {
        $profile = array(
                'appId' => "My cool app",
                'userId' => "234",
                'profile' => array(
                        'email' => "[email protected]",
                        'billingPerson' => array(
                                'name' => "Tester",
                                'companyName' => "Company Name",
                                'street' => "Street",
                                'city' => "City",
                                'countryCode' => "US",
                                'postalCode' => "10001",
                                'stateOrProvinceCode' => "NY"
                        )
                )
        );
        $message = json_encode($profile);
        $message = base64_encode($message);
        $timestamp = time();
        $hmac = hash_hmac('sha1', "$message $timestamp", "A1Lu7ANIhKD6");
        echo "var ecwid_sso_profile='$message $hmac $timestamp'";
} else {
        echo "var ecwid_sso_profile=''";
}
?>

мой перевод на vb.net
Код

            Dim profile As New _profile 
            profile.appId = "my_cool_test_app"
            profile.userId = "465"
            profile.profile.email = "[email protected]"
            profile.profile.billingPerson = New Person With { _
               .city = "Москва", _
               .companyName = "zoo", _
               .countryCode = "US", _
               .name = "jaggy_Smt", _
               .postalCode = "10001", _
               .stateOrProvinceCode = "NY", _
               .street = "Street"}
           
            Dim timestamp As String = DateDiff("s", "01/01/1970 00:00:00", Now()).ToString
            Dim message As String = profile.ToJson

            ' до этого момента всё работает правильно!

            message = Convert.ToBase64String(Encoding.Unicode.GetBytes(message))

            Dim SSO_Secret As String = "A1Lu7ANIhKD6"
            Dim myhmacsha1 As New HMACSHA1(Encoding.Unicode.GetBytes(SSO_Secret))
            Dim hashValue As Byte() = myhmacsha1.ComputeHash(Encoding.Unicode.GetBytes(message + " " + timestamp))


            Dim hmac As String = Convert.ToBase64String(hashValue)
            Dim ecwid_sso_profile As String = message + " " + hmac + " " + timestamp
            SSO_out.Text = ecwid_sso_profile


всё ломается видимо на попытке привети строку к кодировке base64 я пробовал менять кодировку Encoding.Unicode.GetBytes на Encoding.utf8.GetBytes но это не помогло.

Помогите пожалуйста с переводом!  smile 
PM MAIL YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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