|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2013, 15:09 | #1 |
Новичок
Джуниор
Регистрация: 03.05.2013
Сообщений: 1
|
NetUserChangePassword в с#
Ребята , подскажите глупому человеку в чем я не прав.с помощью NetUserChangePassword создал программку , пароль изменяет (уже хорошо), но когда хочу отловишь ошибки типа "не верный старый пароль" или " плохое имя пользователя" , то ничего не получается....
вот кусок кода: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Data.SqlClient; namespace WindowsFormsApplication6 { public partial class Form1 : Form { public enum NET_API_STATUS : uint { NERR_Success = 0, NERR_InvalidComputer = 2351, NERR_NotPrimary = 2226, NERR_SpeGroupOp = 2234, NERR_LastAdmin = 2452, NERR_BadPassword = 2203, NERR_PasswordTooShort = 2245, NERR_UserNotFound = 2221, ERROR_ACCESS_DENIED = 5, ERROR_NOT_ENOUGH_MEMORY = 8, ERROR_INVALID_PARAMETER = 87, ERROR_INVALID_NAME = 123, ERROR_INVALID_LEVEL = 124, ERROR_MORE_DATA = 234, ERROR_SESSION_CREDENTIAL_CONFLICT = 1219 } [DllImport("Netapi32.dll", SetLastError = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)] static extern NET_API_STATUS NetUserChangePassword( [MarshalAs(UnmanagedType.LPWStr)]string domainname, [MarshalAs(UnmanagedType.LPWStr)]string username, [MarshalAs(UnmanagedType.LPWStr)]string oldpassword, [MarshalAs(UnmanagedType.LPWStr)]string newpassword); NET_API_STATUS nStatus; public Form1() { // bool ERROR_INVALID_PASSWORD=false; InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private bool ok() { bool result = true; if (String.IsNullOrEmpty(richTextBox3. Text)) { errorMsg.SetError(richTextBox3, "Old Password is missing."); result = false; richTextBox3.Focus(); } else { errorMsg.SetError(richTextBox3, ""); } if (String.IsNullOrEmpty(richTextBox4. Text)) { errorMsg.SetError(richTextBox4, "New Password is missing."); result = false; richTextBox4.Focus(); } else { errorMsg.SetError(richTextBox4, ""); } if (String.IsNullOrEmpty(richTextBox2. Text)) { errorMsg.SetError(richTextBox2, "Name is missing."); result = false; richTextBox2.Focus(); } else { errorMsg.SetError(richTextBox2, ""); } return result; } private void button1_Click(object sender, EventArgs e) { if (ok()) { nStatus = NetUserChangePassword(null, richTextBox2.Text, richTextBox3.Text, richTextBox4.Text); switch (nStatus) { case NET_API_STATUS.NERR_Success: { MessageBox.Show("WelDone", "Ok", MessageBoxButtons.OK); break; } case NET_API_STATUS.NERR_BadPassword: { MessageBox.Show("badPassword", "Ok", MessageBoxButtons.OK); break; } case NET_API_STATUS.NERR_InvalidComputer : { MessageBox.Show("badName", "Ok", MessageBoxButtons.OK); break; } } } } } что то я не совсем понимаю как пользоваться NET_API_STATUS... объясните люди) кстати в NERR_Success входит если все правильно введено , а если не правильные значения то никуда...почему? |
03.05.2013, 15:18 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
debugger rulez forever
|