Если Вы работаете над.NET 3.5 или более новый, можно использовать System.DirectoryServices.AccountManagement
пространство имен и легко проверить учетные данные:
// create a "principal context" - e.g. your domain (could be machine, too)
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}
Это просто, это надежно, это - 100%-й управляемый код C# на Вашем конце - что больше можно попросить? :-)
Read все об этом здесь:
:
, Как обрисовано в общих чертах в это другой ТАК вопрос (и его ответы) , существует проблема с этим вызовом, возможно возвращаясь True
для старых паролей пользователя. Просто знайте об этом поведении, и не слишком удивляйтесь, происходит ли это :-) (благодаря @MikeGledhill для указания на это!)
Как описано в hg wiki , у меня это сработало с различными версиями hg:
$ PATH
], скажем, в / usr / local / bin
: $ vim / usr / local / bin / opendiff-w #! / bin / sh # opendiff возвращается немедленно, не дожидаясь выхода FileMerge. # Конвейерная передача вывода заставляет opendiff ждать FileMerge. opendiff " $ @ " | кошка
~ / .hgrc
: [extdiff] cmd.interdiff = hg-interdiff cmd.opendiff = opendiff-w [инструменты слияния] filemerge.executable = opendiff-w filemerge.args = $ local $ other -ancestor $ base -merge $ output [расширения] extdiff =
Теперь вы можете использовать его как $ hg opendiff
.
Обновление: в вики Mercurial есть страница о FileMerge . Прочтите сначала.
Я не пробовал использовать FileMerge
, но общий обзор может помочь. Большая часть того, что вы хотите знать, описано на странице Mercurial wiki MergeProgram . Краткая версия - это ваш типичный выбор:
Установите переменную среды HGMERGE
так, чтобы она указывала на нужный инструмент слияния.
или добавьте следующее в свой .hgrc
:
[ui]
merge = /path/to/toolname
[merge-tools]
toolname.args = $base $local $other
Ключ в том, что инструмент слияния должен принимать три аргумента: базовую ревизию, ваши локальные изменения и изменения из другой ветки. Вы используете первую конфигурацию, чтобы указать инструмент, а вторую - чтобы указать, как он принимает аргументы.
Я не пробовал, но держу пари, что вам нужно указать полностью на исполняемый файл FileMerge, а не только на пакет приложений.
Итак:
[ui]
merge = /Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge