Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2013, 15:09   #1
nezlobin
Новичок
Джуниор
 
Регистрация: 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 входит если все правильно введено , а если не правильные значения то никуда...почему?
nezlobin вне форума Ответить с цитированием
Старый 03.05.2013, 15:18   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

debugger rulez forever
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц