К сожалению, нет никакого "простого" способа проверить пользовательские учетные данные на AD.
С каждой методикой, представленной до сих пор, можно получить ложно-отрицательное: creds пользователя будет допустим, однако AD возвратит false при определенных обстоятельствах:
ActiveDirectory не позволит Вам использовать LDAP, чтобы определить, недопустим ли пароль вследствие того, что пользователь должен изменить пароль или если их пароль истек.
Для определения изменения пароля или пароля истек, можно назвать Win32:LogonUser () и проверить код ошибки окон на следующие 2 константы:
Строка должна быть в порядке, так как она будет передана как пустая строка. Для int сделайте его допускающим значение NULL:
public ActionResult Index(string Country, int? Regions)
Также вы заметите, что я использовал его с заглавной буквы, как и ваша строка запроса.
Edit
Обратите внимание, что ASP.NET теперь позволяет вам определять параметры по умолчанию. Например:
public ActionResult Index(string Country, int Regions = 2)
Однако, ИМХО, я бы порекомендовал вам использовать значение по умолчанию только там, где это имеет семантический смысл. Например, если целью параметра Regions было установить количество регионов в стране, а в большинстве стран есть 2 региона (северный и южный), то установка значения по умолчанию имеет смысл. Я бы не стал использовать «магическое число», обозначающее отсутствие ввода (например, 999 или -1) - в этот момент вы должны просто использовать null
.