|
ok, you mean you want your application to use windows login Authentication and proceed by using that username and password, Great Idea!, I will just try it out and will get back to you.
If I am mistaken please pardon.
Thanks & Regards
Navneet Hegde
Nashik
Develop2Program & Program2Develop
|
|
|
|
|
You can't get the password!!!! How did you ever expect the OS password to be accessible through API??? Microsoft's done some stupid things regarding security, but this is not one of em. The password's hashed anyway. Yeah, you have software that can attempt to crack it. But in a normal PC, a reasonably strong password would take a few days or months to be rebuilt using dictionary cracking, if at all it succeeds.
What you can do is get the current principal of the user and check if that login is within an Windows Role. Ex. if all your users are in the Role named "Administrators", you can get the thread.CurrentPrincipal and check if that Windows principal is in the role named "Administrators". If no, you can prompt for the user name and password again.
Look up the WindowsPrincipal and WindowsIdentity classes for more info.
SG
|
|
|
|
|
i_like_tintin wrote: How did you ever expect the OS password to be accessible through API???
I didn't expect to be able to, but thought I would ask the question, just in case.
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
Hi,
I am now providing the code written for you in VB6. I will rewrite it in VB.NET and get back to you when I am free. I didn't find any API to retrieve password or hashed password. So, for username try this. I am providing you two ways. you can use anyone.
'Declare the API functions to access username.<br />
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long<br />
Private Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long<br />
<br />
Dim kName As String * 255 ' For storing username with 255 char buffer.<br />
Dim kEnvVar As String * 255<br />
<br />
Private Sub Command1_Click()<br />
Call GetUserName(kName, 255) ' First method of direct accessing username using API<br />
MsgBox kName<br />
Call GetEnvironmentVariable("USERNAME", kEnvVar, 255) '2nd method which uses windows environment variable to access the username<br />
MsgBox kEnvVar<br />
End Sub
'-----------
' I hope this helps.
' Thanks, Kiran Kumar
|
|
|
|
|
Please use this simple code to retrieve username in vb.net
Public Class Form1<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />
MessageBox.Show(Environ("USERNAME"))<br />
End Sub<br />
End Class
May I know for what purpose you are using the code to retrieve the windows password? so that I can guide you in another logic.
Thanks,
Kiran Kumar
|
|
|
|
|
Hi Kiran,
I already know how to get the user name, but thanks for spending the time on it. It is appreciated.
To get a user name the .NET way, use :-
UserName = System.Environment.UserName
The reason I was after the windows password, is so that I could then test the logon to the program I as writing, to see if the logon name and password are the same as the windows logon and if so logon to my program without asking the user for logon details again.
It is not necessary, but would have been nice.
Thanks for your time
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
Hi all, can i create vpn using vb .net ?how to do , or any suggestion.thank's
|
|
|
|
|
Iam using FlexGrid in VB6.
I need the ScrollBars Always Visible for Flexgrid.
Thanks & Regards
Kumaran
|
|
|
|
|
NO, You can't do that.
Develop2Program & Program2Develop
|
|
|
|
|
Hi all. I'm migrating a VB6 application that uses sockets. There is a button that restablishes the connection. In VB6 it is as simple as socket.close and socket.connect, but in vb.net it doesn't work.
I'm using that code to connect:
endpoint = New IPEndPoint(IPAddress.Parse(host), port)
Socket1 = Nothing
Socket1 = New Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp)
Socket1.Connect(endpoint)
The code that works in VB6 is that:
Socket1.Close
Socket1.RemoteHost = host
Socket1.RemotePort = port
Socket1.Connect
The exception I get is: No connection could be made because the target
machine actively refused it
What is wrong here?
Regards,
Diego F.
|
|
|
|
|
Close socket in VB.NET code, before re-connect.
----------------------------
**** JOB23743 Submitted ****
|
|
|
|
|
I do that before doing socket1=nothing.
Do you think the problem is in the server? It is not .NET code.
Regards,
Diego F.
|
|
|
|
|
Hi, I had tried that connecting to google ip address but I didn't get any error. please let me know to what server you are connecting. also try the sample by connecting multiple times and reply me please.
EndPoint = New IPEndPoint(IPAddress.Parse("66.249.89.99"), 80)<br />
Socket1 = Nothing<br />
Socket1 = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)<br />
Socket1.Connect(EndPoint)
Thanks,
Kiran Kumar
|
|
|
|
|
Ok, it has to be the server. I can connect and disconnect to that IP as many times as I want. My server is VB6 code.
Regards,
Diego F.
|
|
|
|
|
hi,
i m using Vb.net(VS 2005 Professional Edition). My problem is that My Crystal Report Takes Too much Time during first time load .even through there r only one record. However next time crystal report takes less time even through there r hundred of records.
i dont know where i m wrong ?
any Help will be appreciated.
Thanks
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
I think the issue here is that the first time you fire a crystal report, the supporting libraries have to be loaded into memory. However subsequent reports load quicker because the libraries are then cached.
As a work around, why not load a simple report at the application start-up?
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
hi steve,
i don't want to load a sample report at application startup because in this condition my application take too much time at startup.
Have any other idea ?
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
Hi,
I have added Windows Script Host (COM Component: it's called Iwshlibrary when you add it) to my project.
But, if my program is finished and i want to distribute it, is that still legal because i have imported a library of Microsoft? I'd really like to know that because i don't want to get in any trouble
Thanks in regard,
--Zaegra--
|
|
|
|
|
|
Im trying to connect to my database for some values but I keep getting the message that the connection is already open.But I cant see where.("The Microsoft Jet database engine cannot open the file 'C:\Documents and Settings\kagisho.mashiloane\My Documents\WORK\2006\WebStu\TryCsharp'. It is already opened exclusively by another user, or you need permission to view its data.")
HERE IS THE CODE:
using System;
using System.Data;
//using System.Data.SqlClient if using sqlserver db
using System.Data.OleDb; //added
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class ViewGrid : System.Web.UI.Page
{
OleDbConnection con;
//string ConnectionString = "Provider = Microsoft.jet.oledb.4.0; Data source = C:\u005CWebStu\\TryCsharp\\NWINDAllowUpdate.mdb";
string ConnectionString = "Provider = Microsoft.jet.oledb.4.0; Data source = C:\\Documents and Settings\\kagisho.mashiloane\\My Documents\\WORK\\2006\\WebStu\\TryCsharp";
string CommandText = "select EmployeeId, FirstName, LastName from Employees";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//con.Close();***************************************
//
// Loads the Employees grid
con = new OleDbConnection(ConnectionString);
OleDbCommand cm = new OleDbCommand(CommandText, con);
******PROBLEM IS HERE con.Open(); GridView1.DataSource = cm.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataBind();
//Loads the Dropdown listbox with Unique countries
// from the Suppliers table
string str = "Select Distinct Country from Suppliers";
//if (con.State == ConnectionState.Closed
// {
// con.Open();
// }
OleDbCommand cm2 = new OleDbCommand(str,con);
OleDbDataReader dtr = cm2.ExecuteReader();
while(dtr.Read())
{
ddlCountries.Items.Add(dtr.GetString(0));
}
dtr.Close();
}
}
protected void ddlCountries_SelectedIndexChanged(object sender, EventArgs e)
{
string str = "Select SupplierId, Country, CompanyName from Suppliers where Country = '" + ddlCountries.SelectedItem + "'";
con = new OleDbConnection(ConnectionString);
OleDbCommand cm = new OleDbCommand(str, con);
con.Open();
GridView2.DataSource = cm.ExecuteReader(CommandBehavior.CloseConnection);
GridView2.DataBind();
}
}
kagiso
|
|
|
|
|
I think your connection string is not good.
Try this:
"Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=c:\resource.mdb;"
Hope it hepls
|
|
|
|
|
That means I have to change my database, to resources.mdb
Tried that, didnt work
kagiso
|
|
|
|
|
why don'you close connection before opening like:
If Con.State = open then
con.close
End if
Thanks & wishes
Navneet Hegde
Nashik
Develop2Program & Program2Develop
|
|
|
|
|
I tried closing.It tells me that the connection is closed, and then it says, the object con. was not set to an instant of an object.
How do I get around this??
kagiso
|
|
|
|
|
I have question
Why are you using double backslash [ \\foldername\\ ] in connection string write Connection string with single backslash [\foldername\] and
If still problem persist try this for connection string
1] right click on desktop
2] create new text document
3] rename it as mycon.udl
4] double click it and fill proper informations
5] then test connection , if successful then
6] open file eith notepad and copy paste that string
Develop2Program & Program2Develop
|
|
|
|