Avatar billede tanzaweb Nybegynder
17. september 2004 - 14:55 Der er 8 kommentarer og
1 løsning

No overload for method 'sphLogin' takes '2' arguments

Er der nogen der kan forklare mig hvad følgende betyder:

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS1501: No overload for method 'sphLogin' takes '2' arguments

Source Error:

Line 7:         
Line 8:                  System.Data.DataSet userDS = new System.Data.DataSet();
Line 9:                  userDS = sphLogin(UserName.Text, UserPass.Text);
Line 10:       
Line 11:                if (userDS.Tables[0].Rows.Count == 1) {


Source File: \wwwroot\SPH\admini\login.aspx    Line: 9
Avatar billede repsak Nybegynder
17. september 2004 - 17:17 #1
jahh det er mere interessant at se din sphLogin() metode. Umiddelbart er den ikke erklæret sådan:
sphLogin(string, string)
Avatar billede repsak Nybegynder
17. september 2004 - 17:19 #2
iøvridt er der ikke grud til at du i linje 8 inistaliserer userDS. Hvorfor ikke bare
System.Data.DataSet userDS = sphLogin(UserName.Text, UserPass.Text);

(men det har ikke noget med dit problem at gøre :-))
Avatar billede tanzaweb Nybegynder
18. september 2004 - 22:45 #3
void LoginBtn_Click(Object sender, EventArgs e) {
       
            if (Page.IsValid) {
       
                System.Data.DataSet userDS = new System.Data.DataSet();
                userDS = sphLogin(UserName.Text, UserPass.Text);
       
                if (userDS.Tables[0].Rows.Count == 1) {
                    Session["userid"] = userDS.Tables[0].Rows
                [0].ItemArray[0];
                    FormsAuthentication.RedirectFromLoginPage
                (UserName.Text, false);
                }
            else {
                Msg.Text = "Invalid Credentials: Please try again";
            }
        }
    }
        System.Data.DataSet sphLogin(string username, string password, int memberShipClass) {
            string connectionString = "server=\'sql.xxxxxx.dk\'; user id=\'dunc\'; password=\'phutgjgj\'; database=\'" +
                "381028\'";
            System.Data.IDbConnection dbConnection = new System.Data.SqlClient.SqlConnection(connectionString);
   
            string queryString = "SELECT [sph_users].* FROM [sph_users] WHERE (([sph_users].[username] = @username)" +
                " AND ([sph_users].[password] = @password) AND ([sph_users].[memberShipClass] = @" +
                "memberShipClass))";
            System.Data.IDbCommand dbCommand = new System.Data.SqlClient.SqlCommand();
            dbCommand.CommandText = queryString;
            dbCommand.Connection = dbConnection;
   
            System.Data.IDataParameter dbParam_username = new System.Data.SqlClient.SqlParameter();
            dbParam_username.ParameterName = "@username";
            dbParam_username.Value = username;
            dbParam_username.DbType = System.Data.DbType.StringFixedLength;
            dbCommand.Parameters.Add(dbParam_username);
            System.Data.IDataParameter dbParam_password = new System.Data.SqlClient.SqlParameter();
            dbParam_password.ParameterName = "@password";
            dbParam_password.Value = password;
            dbParam_password.DbType = System.Data.DbType.StringFixedLength;
            dbCommand.Parameters.Add(dbParam_password);
            System.Data.IDataParameter dbParam_memberShipClass = new System.Data.SqlClient.SqlParameter();
            dbParam_memberShipClass.ParameterName = "@memberShipClass";
            dbParam_memberShipClass.Value = memberShipClass;
            dbParam_memberShipClass.DbType = System.Data.DbType.Int32;
            dbCommand.Parameters.Add(dbParam_memberShipClass);
   
            System.Data.IDbDataAdapter dataAdapter = new System.Data.SqlClient.SqlDataAdapter();
            dataAdapter.SelectCommand = dbCommand;
            System.Data.DataSet dataSet = new System.Data.DataSet();
            dataAdapter.Fill(dataSet);
   
            return dataSet;
        }

</script>

Det er et forsøg på at give forskellige bruger adgang til dele af et site men ikke andre.
kan man føre en varable med over på en eller anden måde?
Avatar billede repsak Nybegynder
18. september 2004 - 23:52 #4
din metode har formatet
sphLogin(string, string, int);
men du kalder den med
sphLogin(string, string);

derfor er nødt til overføre en int:
userDS = sphLogin(UserName.Text, UserPass.Text, 1);
(dette vil compile, men det er ikke sikkert at det vil give den ønskede funktion)
Avatar billede tanzaweb Nybegynder
19. september 2004 - 23:52 #5
Det er nok fordi at jeg har en radio button list i formen hvor man skal vælge hvor man skal logge ind.

administration = 1
medlemmder = 2

O.S.V

så skal jeg vel have den med over men hvis den hedder Auth, så skal den ikke hedde auth.Text, men noget med int eller hvad?
userDS = sphLogin(UserName.Text, UserPass.Text, Auth.Hvad);
Avatar billede tanzaweb Nybegynder
20. september 2004 - 13:30 #6
Selve html'en ser således ud:

<table>
                <tr>
                    <td>Username:</td>
                    <td><asp:TextBox id="UserName" runat="server"></asp:TextBox></td>
                    <td><asp:RequiredFieldValidator ControlToValidate="UserName" Display="Static" ErrorMessage="*" runat="server" ID="Requiredfieldvalidator1"></asp:RequiredFieldValidator></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><asp:TextBox id="UserPass" TextMode="Password" runat="server"></asp:TextBox></td>
                    <td><asp:RequiredFieldValidator ControlToValidate="UserPass" Display="Static" ErrorMessage="*" runat="server" ID="Requiredfieldvalidator2"></asp:RequiredFieldValidator></td>
                </tr>
                <tr>
                    <td>Sidevalg:</td>
                    <td><asp:RadioButtonList ID="Auth" Runat="server">
                        <asp:ListItem runat="server" Value="1" Text="Administration" />
                        <asp:ListItem runat="server" Value="2" />
                        <asp:ListItem runat="server" Value="3" />
                    </asp:RadioButtonList></td>
                    <td><asp:RequiredFieldValidator ControlToValidate="Auth" Display="Static" ErrorMessage="*" runat="server" ID="Requiredfieldvalidator3"></asp:RequiredFieldValidator></td>
                </tr>
            </table>
            <asp:button id="LoginBtn" text="Login" OnClick="LoginBtn_Click" runat="server"></asp:button>
Avatar billede repsak Nybegynder
20. september 2004 - 20:15 #7
Convert.ToInt32(Auth.SelectedValue);
er den du skal bruge her
Avatar billede tanzaweb Nybegynder
22. september 2004 - 09:20 #8
Tak det hjalp.

Har du et forslag til hvis man skal have adgang til forskellige sektioner af et website.

Her mener jeg hvis man vælger at logge ind som medlem så skal man jo ikke have adgang til administrations siden, men her er de jo egentlig logget ind hvor som helst selv om de ikke skal have adgang.

Jeg opretter bruger i databasen med tilladelse 1, 2, eller 3, men hvordan kan jeg prøve det på siderne.
og udlukke dem som eks. vis ikke har administrator retigheder?
Avatar billede repsak Nybegynder
22. september 2004 - 20:22 #9
Velbekomme

Det er flere måder... En måde er at bruge sessions:
når du logger ind så skriver du
hvis admin Session["user"] = "admin"
ellers hvis standardbruger Session["user"] = "standard"
ellers Session["user"] = "nullUser"

så kan du før hver side lukker checkke hvilken status klienten har.

En anden måde er at bruge .NET security. Det er dog ikke helt så let da man føst lige skal sætte sig ind i dens virkemåde :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester