|
ADO.NET? It is a sub-framework for data access and has nothing to do pages redirection (which mostly connected to web)...
For that see this link: http://msdn.microsoft.com/en-us/library/540y83hx(v=vs.100).aspx[^]
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Use Response.Redirect("URPage");
hi
|
|
|
|
|
Hi,
Everybody
I want to encrypt password in ado.net form?
Can any one help???
Please...
Thanks in advance...
I am sending my code also.
Code is:-
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.Data.SqlClient;
namespace Login_Form
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnlogin_Click(object sender, EventArgs e)
{
if (txtuserid.Text == "" || txtpassword.Text == "")
{
MessageBox.Show("Please enter the data");
return;
}
else
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Vijaya;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand("Select*from User_Data where User_ID='"+txtuserid.Text+"'and Password='"+txtpassword.Text+"'",con);
SqlDataReader dr = cmd.ExecuteReader();
if (!dr.Read())
{
MessageBox.Show("Invalid user_ID and Password");
}
else
{
MessageBox.Show("Valid User");
}
con.Close();
}
}
private void btnexist_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
|
|
|
|
|
|
Your code is vulnerable to SQL Injection[^].
NEVER use string concatenation to build a SQL query. ALWAYS use a parameterized query.
using (SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Vijaya;Integrated Security=True"))
using (SqlCommand cmd = new SqlCommand("Select * from User_Data where User_ID = @UserID and Password = @Password", con))
{
cmd.Parameters.AddWithValue("@UserID", txtuserid.Text);
cmd.Parameters.AddWithValue("@Password", txtpassword.Text);
con.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
...
}
}
Once you've gone through all of your code and fixed that serious security vulnerability, read the links in PIEBALDconsult's answer[^] to find out how you should be storing passwords.
(Hint: Neither "plain-text" nor "encrypted" is the right answer.)
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Where are you stuck? What is your question?
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Hi,
I want to encrypt password in login_form in ado.net???
When user logon??? And also wnt to know how to redirect user to another page?
Thanks...
|
|
|
|
|
Member 11161625 wrote: I want to encrypt password in login_form in ado.net??? Actually, you don't. You want to use SSL so that the password is sent encrypted automatically. You'll also want to them hash the password they send and compare that to the hashed password in your database. Many examples online if you just google for c# hashing.
Member 11161625 wrote: And also wnt to know how to redirect user to another page? Hopefully you are using FormsAuthentication so in that case you use FormsAuthentication.RedirectFromLoginPage(); or if you create your FormsAuthentication Ticket manually you can use regular redirection by using Response.Redirect();
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Good evening, I do not know how to implement the validation of my textbox, I know that I have to use the partial classes because I can not use the POCO classes, but I can not find an example, can you help me? These are my entity:
public class Busta
{
public string _nomeCliente;
[Key]
[Required]
public int BustaID { get; set; }
public int NegozioID { get; set; }
[StringLength(20)]
public string NomeCliente { get; set; }
public virtual Negozio Negozio { get; set; }
}
public class Negozio
{
public int NegozioID { get; set; }
public string RagioneSociale { get; set; }
public virtual List<Busta> Bustas { get; set; }
}
|
|
|
|
|
I have the following PHP code:
$stringToHash = "10123456789"."2014:11:25-15:42:00"."20.00"."826"."sharedsecret";
echo($stringToHash);
$ascii = bin2hex($stringToHash);
echo($ascii);
$sha = sha1($ascii);
echo($sha);
Here is the equivalent C# code:
var stringToHash = "10123456789" + "2014:11:25-15:42:00" + "20.00" + "826" + "sharedsecret";
Console.WriteLine(stringToHash);
var bytes = Encoding.ASCII.GetBytes(stringToHash);
var hexString = BitConverter.ToString(bytes).Replace("-", string.Empty);
Console.WriteLine(hexString);
SHA1 sha = new SHA1CryptoServiceProvider();
var password = sha.ComputeHash(bytes);
var result = BitConverter.ToString(password).ToLower().Replace("-", string.Empty);
Console.WriteLine(result);
var hexStringBytes = Encoding.ASCII.GetBytes(hexString);
var hexStringPassword = sha.ComputeHash(hexStringBytes);
var hexStringResult = BitConverter.ToString(hexStringPassword).ToLower().Replace("-", string.Empty);
Console.WriteLine(hexStringResult);
The first two outputs are the same. The original strings are identical, as are the ASCII hex arrays after conversion, but sha1() in PHP is giving me a different outcome to .net's SHA1CryptoServiceProvider. If I convert that output to a string and hash it again, the result is also different.
In .net, an object has to be in the form of a byte array before you can create an SHA hash from it, and I don't understand what I need to convert to the byte array to produce the same output as the PHP code.
This is problematic as the third party service I am posting to uses the PHP version to verify an object on their end, and my program is written in .net. I could write a middle-man in PHP and relay through that, but I really don't want have to do that.
Any insight into why the two are giving different results? Thanks
|
|
|
|
|
JMK-NI wrote: $ascii = bin2hex($stringToHash);
$sha = sha1($ascii);
JMK-NI wrote: var bytes = Encoding.ASCII.GetBytes(stringToHash);
var hexString = BitConverter.ToString(bytes).Replace("-", string.Empty);
var password = sha.ComputeHash(bytes);
You're hashing two different strings. In your PHP code, you're hashing the equivalent of the hexString in your C# code. In C#, you're hashing the original string.
Either change your PHP code to hash the original string:
$sha = sha1($stringToHash);
or change the C# code to hash the hexString :
var password = sha.ComputeHash(Encoding.ASCII.GetBytes(hexString.ToLower()));
EDIT:
You'll also need to convert the hexString to lower-case before hashing.
PHP: 3130313233343536373839323031343a31313a32352d31353a34323a303032302e3030383236736861726564736563726574
C#: 3130313233343536373839323031343A31313A32352D31353A34323A303032302E3030383236736861726564736563726574
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I can not figure out where I'm wrong place my model:
<pre lang="c#">
public class MainViewModel : ViewModelBase
{
IDataAccessService _serviceProxy;
ObservableCollection<Busta> _Bustas;
public ObservableCollection<Busta> BustaOservable
{
get { return _Bustas; }
set
{
_Bustas = value;
RaisePropertyChanged("BustaOservable");
}
}
ObservableCollection<Negozio> _Negozios;
public ObservableCollection<Negozio> NegozioObser
{
get { return _Negozios; }
set
{
_Negozios = value;
RaisePropertyChanged("Negozio");
}
}
Busta _Busta;
public Busta Busta
{
get { return _Busta; }
set
{
_Busta = value;
RaisePropertyChanged("Busta");
}
}
Negozio _Negozio;
public Negozio NegozioSelezionato
{
get { return _Negozio; }
set
{
_Negozio = value;
RaisePropertyChanged("NegozioSelezionato");
}
}
#region Command Object Declarations
public RelayCommand<Busta> SaveCommand { get; set; }
#endregion
public MainViewModel(IDataAccessService servPxy)
{
_serviceProxy = servPxy;
Busta = new Busta();
NegozioSelezionato = new Negozio();
SaveCommand = new RelayCommand<Busta>(SalvaBusta);
NegozioObser = new ObservableCollection<Negozio>();
}
void SalvaBusta(Busta Bus)
{
Bus.NegozioID = NegozioSelezionato.NegozioID;
Busta.BustaID = _serviceProxy.CreateBusta(Bus);
if (Busta.BustaID != 0)
{
BustaOservable.Add(Busta);
RaisePropertyChanged("Busta");
}
}
public void GetNegozio()
{
foreach (var item in _serviceProxy.GetNegozio())
{
NegozioObser.Add(item);
}
}
}
}
My View:
<pre lang="HTML"><Window x:Class="Prova1.View.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding Main,Source={StaticResource Locator}}"
Title="MainWindow" Height="429" Width="615" Loaded="Window_Loaded">
<Grid>
<TextBox HorizontalAlignment="Left" Height="23" Margin="327,85,0,0" TextWrapping="Wrap" Text="{Binding Busta.BustaID, Mode=TwoWay }" VerticalAlignment="Top" Width="120"/>
<Label Content="BustaID" HorizontalAlignment="Left" Margin="238,85,0,0" VerticalAlignment="Top"/>
<Label Content="NegozioId" HorizontalAlignment="Left" Margin="238,116,0,0" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="327,142,0,0" TextWrapping="Wrap" Text="{Binding Busta.NomeCliente, Mode=TwoWay}" VerticalAlignment="Top" Width="120"/>
<Label Content="NomeCliente" HorizontalAlignment="Left" Margin="238,142,0,0" VerticalAlignment="Top"/>
<Button Content="Salva" HorizontalAlignment="Left" Margin="215,233,0,0" VerticalAlignment="Top" Width="75"
Command="{Binding SaveCommand}" CommandParameter="{Binding Busta}"/>
<!-- <TextBox HorizontalAlignment="Left" Height="23" Margin="327,114,0,0" TextWrapping="Wrap" Text="{Binding Busta.NegozioID, Mode=TwoWay}" VerticalAlignment="Top" Width="120"/>-->
<ComboBox HorizontalAlignment="Left" Margin="327,116,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{Binding NegozioObser}" SelectedItem="{Binding NegozioSelezionato}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding RagioneSociale}"></TextBlock>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Window>
This is the error that comes out:
System.NullReferenceException verificata
HResult=-2147467261
Message=Riferimento a un oggetto non impostato su un'istanza di oggetto.
Source=Prova1
StackTrace:
in Prova1.ViewModel.MainViewModel.SalvaBusta(Busta Bus) in k:\c#\MVVMLight\Prova1\Prova1\ViewModel\MainViewModel.cs:riga 102
InnerException:
|
|
|
|
|
The message is telling you what the error is and where it occurs. Use your debugger to trap the code and see why your reference item is null.
|
|
|
|
|
Just to clarify: please put your environment international settings to English to allow all the users to answer (at least to understand the error message).
It looks you have a pointer not associated with any object, check or add some initialization. The message tells you precisely which line of code is wrong, but we have no explicit line numeration visible.
ADDENDUM:
The line
Busta.BustaID = _serviceProxy.CreateBusta(Bus);
is totally wrong: you are using the name of the class as it if is an OBJECT. You would probably use Bus instead of Busta.
To help you not doing the same mistakes be careful to differentiate consistently between the name of a type (or class or enum) and it's object identifiers, or it is easy to be confused.
|
|
|
|
|
That syntax is perfectly valid (although confusing). OP has declared a property named Busta thus:
Busta _Busta;
public Busta Busta
{
get { return _Busta; }
set
{
_Busta = value;
RaisePropertyChanged("Busta");
}
}
|
|
|
|
|
Oh, right, haven't see that.
That's BAD style, very confusing!
|
|
|
|
|
den2k88 wrote: That's BAD style I think it's worse than that.
|
|
|
|
|
I apologize to everyone for my code confusing because you are a student of 40 years autodidact who does it for a hobby, I'll do a bit of order.The meantime I wanted to show how I did the DB because the property and that nothing is shop and is the property navigation, here they are;
CREATE TABLE [dbo].[Busta] (
[BustaID] INT NOT NULL,
[NegozioID] INT NOT NULL,
[NomeCliente] VARCHAR (25) NULL,
PRIMARY KEY CLUSTERED ([BustaID] ASC),
CONSTRAINT [FK_Busta_Negozio] FOREIGN KEY ([NegozioID]) REFERENCES [dbo].[Negozio] ([NegozioID])
);
CREATE TABLE [dbo].[Negozio] (
[NegozioID] INT NOT NULL,
[RagioneSociale] VARCHAR (20) NOT NULL,
PRIMARY KEY CLUSTERED ([NegozioID] ASC)
);
|
|
|
|
|
I am an idiot I forgot to initialize the observableCollcction Busta sorry I bothered to bullshit.
|
|
|
|
|
Hi all,
I have four selection list boxes.....authorList publisherList yearpublishedList and genreList..
I have managed to write code that enables me to click on 1 or more of the boxes and get a result.
For example if I click on Ken Davies in the Authors list then all his books will appear.I can then click on the second box the publishers list and this will narrow his books down to that publisher and so on.
My problem is this,once I have clicked on any of the lists I have to make a selection in that list.For example if I click on author Ken Davies in the authors list,I can't find a way of "unclicking" that list.I have to stay with it and select another author or otherwise close and open the program again.
The problem being that If I was checking an author,then I decided I just wanted to check genre ,I cant because an author is already selected.
My question is this.Is there a way I can just reset the program,or perhaps is there a way tha I could "uncheck" an item in a list.
Thankyou
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim tables As DataTableCollection = ds.Tables
Dim source1 As New BindingSource()
Dim da As New OleDb.OleDbDataAdapter
Dim isFirstColumn As Boolean = True
Dim author As String = ""
Dim publisher As String = ""
Dim yearpublished As String = ""
Dim genre As String = ""
Dim aa As String = authorList.Text
Dim bb As String = publisherList.Text
Dim cc As String = yearpublishedList.Text
Dim dd As String = genreList.Text
Dim astring As String = "SELECT * FROM books "
If authorList.SelectedIndex > -1 Then
If isFirstColumn Then
author = "WHERE author = '" & aa & "' "
Else
author = "AND author = '" & aa & "' "
End If
isFirstColumn = False
End If
If publisherList.SelectedIndex > -1 Then
If isFirstColumn Then
publisher = "WHERE publisher = '" & bb & "' "
Else
publisher = "AND publisher = '" & bb & "' "
End If
isFirstColumn = False
End If
If yearpublishedList.SelectedIndex > -1 Then
If isFirstColumn Then
yearpublished = "WHERE yearpublished = '" & cc & "' "
Else
yearpublished = "AND yearpublished = '" & cc & "' "
End If
isFirstColumn = False
End If
If yearpublishedList.SelectedIndex > -1 Then
If isFirstColumn Then
genre = "WHERE genre = '" & dd & "' "
Else
genre = "AND genre = '" & dd & "' "
End If
isFirstColumn = False
End If
dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
dbSource = "Data Source = C:\Documents and Settings\james\Desktop\authors2.accdb"
con.ConnectionString = dbProvider & dbSource
con.Open()
Dim sql As String = astring & author & publisher & yearpublished & genre
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "books")
Dim view1 As New DataView(tables(0))
source1.DataSource = view1
DataGridView1.DataSource = view1
DataGridView1.Refresh()
<pre lang="vb"><pre lang="vb"><pre lang="vb">
End Sub
End Class
|
|
|
|
|
Hi All,
I managed to resolve this.I placed a button on my form and place the following code into it.One line for each box.
authorList.SelectedIndex=-1
1
Regards
cw
|
|
|
|
|
Your code is vulnerable to SQL Injection[^].
NEVER use string concatenation to build a SQL query. ALWAYS use a parameterized query.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I want to minimize my primary Bugs as testing team is saying.I think my Unit Testing is not much effective.I like to get a few tips on that part.Please help me!
[ASP.NET,C#,SQL SERVER 2008]
Thanks in Advance
|
|
|
|
|
Our very own Marc Clifton has written this free[^] book on unit testing. It's very good.
|
|
|
|
|
Thanks.I will give it a try.
|
|
|
|