Как я могу использовать код Ruby в.NET?

Это может быть немного неточно, чтобы сказать, что средний человек не понимает OpenID.

В большинстве случаев, с небольшим убедительным маркетингом (т.е. "ИСПОЛЬЗОВАНИЕ ОДИН ВХОД В СИСТЕМУ НА ВСЕХ САЙТАХ!!! 11!) они могут понять, что это позволяет им входить в систему на сайтах с помощью одного входа в систему вместо того, чтобы иметь набор различных имен пользователей и паролей на различных сайтах.

проблема, однако, состоит в том, что среднему пользователю, целый опыт OpenID идет вразрез с тем, чем они полагают, что сетевая безопасность.

  • Пользователи не будут автоматически доверять ему

    С нормальными логинами имени пользователя/пароля, пользователи понимают, что пароль должен держаться в секрете, и это - то, что защищает их конфиденциальность, когда они входят в систему на сайте. Как они должны понять обмен, который продолжается между клиентским сайтом OpenID и их поставщиком OpenID? Все, что они знают, они не должны были вставлять пароль (предполагающий, что они "всегда зарегистрированы" в их поставщике OpenID) - таким образом, это не безопасно, правильно? Я имею в виду в глазах пользователя, как это может быть безопасно, если они не дали пароль? Это может привести к пользовательскому недоверию.

  • Это делает фишинг легким

    (Много), пользователи знают, что неправильно снова использовать тот же пароль для различных учетных записей, все же это, кажется, точно, что делает OpenID. Что, если пользователь просто предполагает, что весь их поставщик OpenID делает, совместно использует их пароль со всеми сайтами-участниками? Я имею в виду, как еще OpenID мог 'входить в систему для них' на всех этих сайтах? Если пользователь предполагает, что через OpenID, их пароль становится известным всем участвующим сайтам OpenID, они могут предположить, что довольно разумно выделить этот пароль на любой из тех сайтов. Это - кошмар фишинга. Предположите помещать эту фразу на свой сайт: "Введите Ваш (некоторый поставщик OpenID) имя пользователя [] и пароль []". Вы уже - люди фишинга.

    Мы не должны забывать также, что пользователь был бы право в их подозрениях в одном отношении даже если по немного отличающейся причине: если кто-то получает доступ к их поставщику OpenID, они получают доступ к своим идентификационным данным на всех сайтах, где они использовали те идентификационные данные, которые являются той же оборотной стороной к использованию того же пароля на нескольких сайтах.

  • Это отклоняется слишком много от того, что пользователи понимают

    , Наличие нескольких имен пользователей/паролей на различных сайтах не является трудным для пользователей понять. Пользователи понимают понятие имена пользователей и пароли хорошо, потому что они привыкли к ним и точке безопасности (то, что пароль является секретом), действительно очевидно для них. Действительно ясно, как работает пароль. При наличии нескольких, комбинации имени пользователя и пароля больше не делают это сбивающим с толку или сложным - это - просто то же самое, но больше чем один из них. В то время как запоминание нескольких паролей может быть трудным, пользователи, по крайней мере, знают , как , чтобы сделать это, и как это работает.

    OpenID пытается решить проблему запоминания нескольких паролей, но в процессе он создает совершенно новую парадигму, та, которая абсолютно непрозрачна пользователям. В отличие от пароля, безопасность которого очевидна (это просто должно быть секретным), вся безопасность OpenID продолжается негласно, с общающимися друг с другом сайтами, ключи и хеши, и т.д. Пользователь больше полностью понимает, как их конфиденциальность защищается или что должно держаться в секрете от того, кого, потому что они не понимают, как система работает. Так, в попытке решить проблему запоминания нескольких паролей, OpenID создал мистическую систему ключевых обменов, которая нарушает целое понимание пользователя того, как аутентификация работает и почему это безопасно.

5
задан marclar 17 September 2009 в 21:05
поделиться

1 ответ

Вот как вы выполняете взаимодействие:

Убедитесь, что у вас есть ссылки на IronRuby , IronRuby.Libraries , Microsoft.Scripting и Microsoft.Scripting.Core

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IronRuby;
using IronRuby.Builtins;
using IronRuby.Runtime;

namespace ConsoleApplication7 {
    class Program {
        static void Main(string[] args) {
            var runtime = Ruby.CreateRuntime();
            var engine = runtime.GetRubyEngine();

            engine.Execute("def hello; puts 'hello world'; end");

            string s = engine.Execute("hello") as string;
            Console.WriteLine(s);
            // outputs "hello world"

            engine.Execute("class Foo; def bar; puts 'hello from bar'; end; end");
            object o = engine.Execute("Foo.new");
            var operations = engine.CreateOperations();
            string s2 = operations.InvokeMember(o, "bar") as string; 
            Console.WriteLine(s2);
            // outputs "hello from bar"

            Console.ReadKey();


        }
    }
}

Примечание. Среда выполнения имеет ExecuteFile, который можно использовать для выполнения файла.

Чтобы Gems заработал

  1. Убедитесь, что вы установили свой гем с помощью igem.exe
  2. , вам, вероятно, придется задать некоторые пути поиска с помощью Engine.SetSearchPaths
5
ответ дан 14 December 2019 в 19:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: