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

ASP.NET: Выдача себя за домен на VMWare

Это вопрос, который я задаю, но ответ не содержит подробностей о том, как получен _token. Кажется, он использует только WindowsIdentity.GetCurrent (). Token , поэтому олицетворение не происходит.

Могу ли я выдать себя за пользователя в другом домене Active Directory в .NET?

Этот следующий вопрос противоречит ответы, причем принятый с комментарием «Я начинаю подозревать, что моя проблема в другом». Бесполезно.

LogonUser работает только для моего домена

Следующий вопрос, кажется, подразумевает, что это невозможно, {public int UserId {получить; установлен; } [Обязательно (ErrorMessage = "Требуется имя пользователя.")] [StringLength (20, ErrorMessage = "Ваш ...

У меня есть пользователь класса, который выглядит следующим образом:

public class User
{
    public int UserId { get; set; }

    [Required(ErrorMessage = "A username is required.")]
    [StringLength(20, ErrorMessage = "Your username must be 4-20 characters.", MinimumLength = 4)]
    [RegularExpression("^[a-zA-Z0-9]*$", ErrorMessage = "Your username can only consist of letters and numbers.")]
    [Remote("UsernameExists", "RemoteValidation", ErrorMessage = "Username is already taken")]
    public string Username { get; set; }

    [Required(ErrorMessage = "A password is required.")]
    [MinLength(4, ErrorMessage = "Your password must have at least 4 letters.")]
    public string Password { get; set; }

    [Required(ErrorMessage = "An email address is required.")]
    public string Email { get; set; }
}

Для функции регистрации, которую я создал ViewModel, который содержит объект User и строку для подтверждения пароля:

public class RegistrationViewModel
{
    public User User { get; set; }

    [DisplayName("Password confirmation")]
    [Required, Compare("User.Password", ErrorMessage = "The password do not match")]
    public string PasswordConfirmation { get; set; }
}

Первая проблема, с которой я столкнулся, заключается в том, что я не могу получить проверку для работы Compare ("User.Password"), поскольку она не работает кажется, что это свойство у пользователя обнаружено. Есть ли способ проверить свойство PasswordConfirmation на соответствие свойству User.Password?

Вторая проблема - удаленная проверка поля имени пользователя. Я следил за руководством Дэвида Хайдена по адресу http : //davidhayden.com/blog/dave/archive/2011/01/04/ASPNETMVC3RemoteValidationTutorial. aspx , но параметр username в методе UsernameExists всегда имеет значение NULL. Я что-то упустил?

Редактировать:

Мне очень жаль, но я не совсем понял ошибку, которую я получаю при сравнении паролей. При заполнении полей работает нормально, если пароли не совпадают, я получу ошибку. Однако при отправке формы я получаю следующую ошибку в сводке проверки: Не удалось найти свойство с именем UserToRegister.Password.

Изменить 2:

Я понял часть проблемы благодаря сообщению Джо. Удаленный валидатор отправляет обратно URL /? UserToRegister.Username = temp, который, очевидно, не соответствует параметру имени пользователя моего действия контроллера. Чтобы сопоставить мой параметр действия с UserToRegister.Username, требуется следующее:

public ActionResult UsernameExists([Bind(Prefix = "UserToRegister.Username")]string username)

Теперь этот параметр правильно передает параметр в метод. Однако я все еще получаю сообщение об ошибке при использовании атрибута «Сравнить» в поле пароля.

Спасибо.

10
задан b3n 17 February 2011 в 03:56
поделиться