|
i almost search google from past 3 hours and i did not get nay good information
|
|
|
|
|
shomic.goyal wrote: i almost search google
How can you almost search Google?
Anyway, what were you Googling?
hmmm pie
|
|
|
|
|
case study for making an ip messenger
|
|
|
|
|
You're not just going to be able to find out how to do it by just copying someone else!
You have to search for the building blocks and put them together yourself! If you can't figure out how to do it then I suggest going back a few steps and picking up the basics.
By the way, I found a 'case study' and it was the top result of my first Google.
Edit: Make that multiple 'case studies' with the same search.
hmmm pie
|
|
|
|
|
that case study i read it but it will not help it to me
|
|
|
|
|
What case study? I didn't link you.
Anyway, you should look at it and see how you can adapt it to suit your needs.
hmmm pie
|
|
|
|
|
see what happen when you feed a troll?
Yusuf
Oh didn't you notice, analogous to square roots, they recently introduced rectangular, circular, and diamond roots to determine the size of the corresponding shapes when given the area. Luc Pattyn[^]
|
|
|
|
|
They go and throw up, so they can stay thin.
hmmm pie
|
|
|
|
|
fly904 wrote: They go and throw up, so they can stay thin.
As soon as I saw your post, I thought of "Die...Die...Die" as in troll die... then I saw your signature.
fly904 wrote: hmmm pie
hmmmm die....die....die...
Yusuf
Oh didn't you notice, analogous to square roots, they recently introduced rectangular, circular, and diamond roots to determine the size of the corresponding shapes when given the area. Luc Pattyn[^]
|
|
|
|
|
you have no freaking clue. Now put down your research paper and apply at your nearest fast food resturant.
Yusuf
Oh didn't you notice, analogous to square roots, they recently introduced rectangular, circular, and diamond roots to determine the size of the corresponding shapes when given the area. Luc Pattyn[^]
|
|
|
|
|
Hello, I have been working on a application to help us better manage our network. The application is for myself and one other person at our agency. Everything is working fine, but doing this one thing (getting list of users) from LDAP remotely is very slow. Now I know it will be slower than normal, but how I have coded it might freak some of you out, and see how I could make what I am trying to do quicker.
I have used alot of the LDAP/AD coding from an article on this site (codeproject).
Thanks to:
http://www.codeproject.com/KB/system/everythingInAD.aspx[^]
First,
I have a ListView control that populates with every user. Every user has a icon (man icon) that either has a lock symbol (if the user is locked), a X symbol on it (if the user is disabled), or nothing if the user does not have either one of those.
1. Here is what it is doing when Adding to the ListView Control:
private delegate void AddListItemDelegate();
void AddListItem()
{
if (listViewUsers.InvokeRequired)
{
listViewUsers.Invoke(new AddListItemDelegate(AddListItem));
}
else
{
if (!UseAuth) adPrincipalContext = new PrincipalContext(ContextType.Domain, Properties.Settings.Default.LDAP);
else adPrincipalContext = new PrincipalContext(ContextType.Domain, Properties.Settings.Default.LDAP,
(string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPusername)),
(string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPpassword)));
UserPrincipal user = new UserPrincipal(adPrincipalContext);
user.Name = "*";
PrincipalSearcher pS = new PrincipalSearcher();
pS.QueryFilter = user;
PrincipalSearchResult<Principal> results = pS.FindAll();
listViewUsers.Items.Clear();
ListViewItem listItem;
foreach (Principal result in results)
{
AD newAD = new AD(result.Name);
bool Locked = newAD.IsLocked();
bool Enabled = newAD.IsEnabled();
string Branch = newAD.branch;
listItem = new ListViewItem(result.Name);
listItem.ToolTipText = "Sid: " + result.Sid;
if (Enabled)
{
if (Locked) listItem.ImageIndex = 1;
else listItem.ImageIndex = 0;
}
else listItem.ImageIndex = 2;
bool found = false;
if (String.IsNullOrEmpty(Branch)) Branch = "Unknown";
foreach (ListViewGroup g in listViewUsers.Groups)
{
if (g.Header == Branch) {
found = true;
listItem.Group = g;
break;
}
}
if (!found)
{
ListViewGroup g = new ListViewGroup(Branch, Branch);
listViewUsers.Groups.Add(g);
listItem.Group = g;
}
listViewUsers.Items.Add(listItem);
}
}
}
So what I have this doing is getting a list of users from AD, but also going to my AD class to see if the user is LOCKED or DISABLED. This is what is happening behind the AD class:
try
{
using (DirectoryEntry root = new DirectoryEntry())
{
root.Path = LDAP;
if (UseAuth)
{
root.Username = (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPusername));
root.Password = (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPpassword));
}
using (DirectorySearcher searcher = new DirectorySearcher())
{
searcher.SearchRoot = root;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = "(&(objectClass=user)(name=" + this.userName + "))";
searcher.PropertiesToLoad.Add("mail");
searcher.PropertiesToLoad.Add("department");
searcher.PropertiesToLoad.Add("company");
searcher.PropertiesToLoad.Add("physicalDeliveryOfficeName");
searcher.PropertiesToLoad.Add("telephoneNumber");
SearchResultCollection results = searcher.FindAll();
if (results != null)
{
foreach (SearchResult result in results)
{
ResultPropertyCollection props = result.Properties;
foreach (string propName in result.Properties.PropertyNames)
{
if (propName == "mail") mail = props[propName][0].ToString();
else if (propName == "department") branch = props[propName][0].ToString();
else if (propName == "company") division = props[propName][0].ToString();
else if (propName == "physicalDeliveryOfficeName") office = props[propName][0].ToString();
else if (propName == "telephoneNumber") officenumber = props[propName][0].ToString();
else if (propName == "adspath") adspath = props[propName][0].ToString();
}
}
}
searcher.Dispose();
root.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
So what I am doing here is using the username provided from the previous class and passing it to here to set the username and password. If you look in the previous code you will see this:
AD newAD = new AD(result.Name);
bool Locked = newAD.IsLocked();
bool Enabled = newAD.IsEnabled();
The code I have for checking if it is locked:
public bool IsLocked()
{
try
{
DirectoryEntry uEntry;
if (UseAuth) uEntry = new DirectoryEntry(this.adspath, (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPusername)), (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPpassword)));
else uEntry = new DirectoryEntry(this.adspath);
bool Locked = Convert.ToBoolean(uEntry.InvokeGet("IsAccountLocked"));
uEntry.Close();
if (Locked) return true;
else return false;
}
catch (DirectoryServicesCOMException ex)
{
return false;
}
}
and
public bool IsEnabled()
{
DirectoryEntry uEntry;
if (UseAuth) uEntry = new DirectoryEntry(this.adspath, (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPusername)), (string)Encoding.Unicode.GetString(Convert.FromBase64String((string)Properties.Settings.Default.LDAPpassword)));
else uEntry = new DirectoryEntry(this.adspath);
int val = (int)uEntry.Properties["userAccountControl"].Value;
uEntry.Close();
if (val == (val & ~0x2)) return true;
else return false;
}
So basically what I am doing is querying LDAP, getting a list of users, then going through each user and querying LDAP AGAIN for all of that USERS information, THEN with that information, querying LDAP again to see if the accounts unlocked, THEN querying LDAP again to see if the account is DISABLED.
So my question is... how exactly would I clean this up? I am new to using C# with AD and trying to make it work. Well it does work fine when on the internal network, its slow outside. I know it can be coded better and I'm not asking anyone to do it, just point me (or shove me) in the right direction to what I should change LOL.
Thanks in advanced!
|
|
|
|
|
Jacob Dixon wrote: how exactly would I clean this up?
what is that you want to clean up?
Yusuf
Oh didn't you notice, analogous to square roots, they recently introduced rectangular, circular, and diamond roots to determine the size of the corresponding shapes when given the area. Luc Pattyn[^]
|
|
|
|
|
Well, the code works. I just think there would be an easier way / quicker way to get the information. Basically I am getting if the account is locked out, disabled, and the name and department. How I am doing this involves calling DirectoryEntry multiple times. When going through each name I'm wondering if I can get this information from the same DirectoryEntry all at the same time.
|
|
|
|
|
Ok I have modified it to do it all in one method... but its pulling computer objects too????
void AddListItemTest()
{
using (DirectoryEntry root = new DirectoryEntry())
{
root.Path = "LDAP://" + Properties.Settings.Default.LDAP;
root.Username = "****";
root.Password = "*****";
using (DirectorySearcher searcher = new DirectorySearcher())
{
searcher.SearchRoot = root;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = "(&(objectClass=user))";
searcher.PropertiesToLoad.Add("department");
searcher.PropertiesToLoad.Add("name");
searcher.PropertiesToLoad.Add("userAccountControl");
searcher.PropertiesToLoad.Add("lockoutTime");
SearchResultCollection results = searcher.FindAll();
if (results != null)
{
foreach (SearchResult result in results)
{
ResultPropertyCollection props = result.Properties;
string Branch = "Unknown";
string Name = "";
int val = 0;
long ticks = 0;
foreach (string propName in result.Properties.PropertyNames)
{
if (propName == "name") Name = props[propName][0].ToString();
else if (propName == "department") Branch = props[propName][0].ToString();
else if (propName == "useraccountcontrol") val = (int)props[propName][0];
else if (propName == "lockouttime") ticks = (long)props[propName][0];
}
ListViewItem listItem = new ListViewItem(Name);
bool Locked;
if (ticks > 0) Locked = true;
else Locked = false;
if (val != (val & ~0x2)) listItem.ImageIndex = 2;
else if (Locked) listItem.ImageIndex = 1;
else listItem.ImageIndex = 0;
bool found = false;
foreach (ListViewGroup g in listViewUsers.Groups)
{
if (g.Header == Branch)
{
found = true;
listItem.Group = g;
break;
}
}
if (!found)
{
ListViewGroup g = new ListViewGroup(Branch, Branch);
listViewUsers.Groups.Add(g);
listItem.Group = g;
}
listViewUsers.Items.Add(listItem);
}
}
}
}
}
|
|
|
|
|
Ok what I did was change the filter to:
(&(objectcategory=person)(objectclass=user))
from
(&(objectClass=user))
Why would coputer objects show in the user class?
|
|
|
|
|
Exactly what would be the best way to test if the LDAP server exist? I see the DirectoryEntry.Exist, but its pretty slow to come back with an answer. Should I use TCP?
|
|
|
|
|
I amusing windows 2003 server in that lotus
I am writing a code in c# VS05 for email sending and receiving via lotus notes and dominal server but.....
SMTP not getting configurated...?
giving error as-
Error is Root is not finding...
Whats the actual problem....?
modified on Saturday, March 21, 2009 4:47 PM
|
|
|
|
|
Why are you asking this question in a C# Forum?
There is no Lotus Notes Forum, but you might have tried the Notes help Forum. ON THE NOTES SITE.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
I have RSA public key for encyption, and plain data size (8 byte).
How do I calculate the size of encrypted data?
Please help!
|
|
|
|
|
It would help to suggest an answer if you said why you want to know the size of the encrypted data?
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Hello,
How we can Convert String to set it on richBox, i try for MailMessage2.Text = "eeeeeeee"; but there are an exception : Object reference not set to an instance of an object, thank you verry mutch.
|
|
|
|
|
Have you actually created an instance of MailMessage2?
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
no, how i van make this?? thank you verry mutch.
|
|
|
|
|
This is very basic stuff - you really should work through some online getting started articles/blogs and buy a book or ten.
Assuming MailMessage2 is your RichTextBox:
RichTextBox MailMessage2 = new RichTextBox();
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
Does your code look like this:
public Form1()
{
MailMessage2.Text = "eeeeeeee";
InitializeComponent();
}?
change it to
public Form1()
{
InitializeComponent();
MailMessage2.Text = "eeeeeeee";
}
If it' stuck, DO NOT pull harder!
|
|
|
|