Пользовательская форма входа при использовании проверки подлинности Windows

== проверяет ссылки на объекты, .equals() проверяет строковые значения.

Иногда кажется, что == сравнивает значения, потому что Java делает некоторые закулисные вещи, чтобы убедиться, что одинаковые строки в строке являются одним и тем же объектом.

Для Например:

String fooString1 = new String("foo");
String fooString2 = new String("foo");

// Evaluates to false
fooString1 == fooString2;

// Evaluates to true
fooString1.equals(fooString2);

// Evaluates to true, because Java uses the same object
"bar" == "bar";

Но будьте осторожны с нулями!

== обрабатывает строки null в порядке, но вызов .equals() из пустой строки приведет к исключению:

String nullString1 = null;
String nullString2 = null;

// Evaluates to true
System.out.print(nullString1 == nullString2);

// Throws a NullPointerException
System.out.print(nullString1.equals(nullString2));

Итак, если вы знаете, что fooString1 может но не менее очевидно, что он проверяет значение null (из Java 7):

System.out.print(Objects.equals(fooString1, "bar"));
-1
задан stebberg 10 March 2019 в 18:21
поделиться

1 ответ

Невозможно реализовать пользовательский вход в систему для сайта с использованием проверки подлинности Windows. Проверка подлинности Windows происходит до того, как ваш код запускается, поэтому он либо использует проверку подлинности Windows, либо использует проверку подлинности с помощью форм, вы не можете выполнить оба эти действия, а проверка подлинности через Windows не означает, что вы прошли проверку подлинности с помощью проверки подлинности с помощью форм, а вход в систему с помощью проверки подлинности с помощью форм - нет. значит, вы аутентифицированы Windows. Чтобы подтвердить, что вы вошли в систему с помощью auth форм, код должен быть запущен ... но для запуска кода вы должны сначала пройти проверку через Windows auth. Вы в основном используете два разных механизма аутентификации, думая, что они совместимы или эквивалентны, когда это не так. Проверка подлинности Windows работает на разных уровнях TCP / IP, а проверка подлинности на основе форм - на уровне Интернета и на уровне приложений. Кроме того, доступны разные типы проверки подлинности Windows, такие как версия Kerberos с резервной версией NTLM. Форма проверки подлинности Windows встроена в браузер. [ 110]

В качестве обходного пути вы можете попробовать:

• Реализовать пользовательский провайдер членства, где вы можете использовать при необходимости механизм олицетворения / делегирования

• Реализовать архитектуру единого входа, используя, например, ADFS.

С уважением, Jalpa.

0
ответ дан Jalpa Panchal 10 March 2019 в 18:21
поделиться
Другие вопросы по тегам:

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