Tobba Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 Hei Jeg sliter litt med og få kontakt med en mysql database ved hjelp av asp.net. får runtime error hver gang. Her er litt av den: Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. Sånn ser koden ut: Dim strConnect As String strConnect = "Provider=MySqlProv;Data Source=***;Password=***;User ID=***;Location=localhost" Noen som kan hjelpe meg her? Takk Lenke til kommentar
Gråskjegg Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 Tobba skrev: Hei Jeg sliter litt med og få kontakt med en mysql database ved hjelp av asp.net. får runtime error hver gang. Her er litt av den: Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. Sånn ser koden ut: Dim strConnect As String strConnect = "Provider=MySqlProv;Data Source=***;Password=***;User ID=***;Location=localhost" Noen som kan hjelpe meg her? Takk Følg rådet fra feilmeldingen, og prøv fra serveren. Da vil du forhåpentligvis få en mer detaljert feilmelding. Om du synes at sikkerhet er tøys og tull, kan du endre settingene i web.config slik at du får detaljerte feilmeldinger fra andre klienter også. (custom error messages=false) Det er mulig at alt som skal til er en 'trusted connection=false' i connectionstrengen. - grå - Lenke til kommentar
kaffenils Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 I web.config legger du til/endrer customErrors slik: <customErrors mode="Off" /> Lenke til kommentar
Tobba Skrevet 28. mars 2005 Forfatter Del Skrevet 28. mars 2005 Takk for raske svar. Har prøvd men det hjelper ikke.. får samme feilmelding uansett. Er det innstillinger på servern som høyst sannsynlig er feil eller er det koden som ikke er skikkelig? Lenke til kommentar
oyvind_b Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Dette kan jeg svært lite om, men jeg minnes et eller annet om at brukeren asp_net må ha tilgang til databasen. Mulig jeg tar feil her, men tenkte det var verdt et forsøk... Øyvind. Lenke til kommentar
Gråskjegg Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Tobba skrev: Takk for raske svar. Har prøvd men det hjelper ikke.. får samme feilmelding uansett. Er det innstillinger på servern som høyst sannsynlig er feil eller er det koden som ikke er skikkelig? Det er ikke lett å si uten å se noe kode... Og du kan gjerne ta det som et hint! - grå - Lenke til kommentar
enden Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 oyvind_b skrev: Dette kan jeg svært lite om, men jeg minnes et eller annet om at brukeren asp_net må ha tilgang til databasen. Mulig jeg tar feil her, men tenkte det var verdt et forsøk... Øyvind. Det gjelder vel strengt tatt filtilgang til access-databaser. Ved bruk av mysql-drivere vil ikke likt ha noe å si. *leke proff uten å være helt sikker* Lenke til kommentar
oyvind_b Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Gråskjegg skrev: Tobba skrev: Takk for raske svar. Har prøvd men det hjelper ikke.. får samme feilmelding uansett. Er det innstillinger på servern som høyst sannsynlig er feil eller er det koden som ikke er skikkelig? Det er ikke lett å si uten å se noe kode... Og du kan gjerne ta det som et hint! - grå - Enig... fint om du tar med utdrag fra koden din og web.config, samt ser om du kan få fram en bedre feilmelding. Øyvind. Lenke til kommentar
oyvind_b Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Tobba skrev: Hei Jeg sliter litt med og få kontakt med en mysql database ved hjelp av asp.net. får runtime error hver gang. Her er litt av den: Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. Sånn ser koden ut: Dim strConnect As String strConnect = "Provider=MySqlProv;Data Source=***;Password=***;User ID=***;Location=localhost" Noen som kan hjelpe meg her? Takk Jeg kom på en ting: Prøv å lage en minimal aspx fil (f.eks hei.aspx som kun inneholder teksten hei). Får du samme feilen når denne vises i browseren (mitt tips er at du alltid får feilen)? Øyvind Lenke til kommentar
Tobba Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 Her kommer det endel kode, håper det gjør ting lettere: <%@ Import Namespace="System.Web.Security " %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <html> <script language="VB" runat=server> Sub Login(Src As Object, E As EventArgs) Dim strConnect As String strConnect = "Provider=MySqlProv;Data Source=**;Password=**;User ID=**;Location=localhost" Dim strUsr As String = txtUsr.Value Dim strPwd As String = txtPwd.Value Dim blnIsAuthenticated As boolean = False Dim strSQL As String strSQL = "SELECT password FROM admin_users WHERE username='" & strUsr & "' AND password='" & strPwd "'" Try //koble til db Dim objConnect As New OloDbConnection(strConnect) objConnect.Open() //foreta en spørring mot DB Dim objCommand As New OleDbCommand(strSQL, objConnect) //deklarere en variabel som skal holde det som hentes ut fra DB Dim objDataReader As OleDbReader //Utføre objDataReader = objCommand.ExecuteReader() If objDataReader.Read() Then If objDataReadeer("Passord") = strPWD Then blnIsAuthenticated = True End If End If objDataReader.Close() objConnect.Close() Catch objError As Exception outMessage.InnerHtml = "Feil med DB.<br />" & objError.Message & "<br />" & objError.Source Exit Sub End Try If blnIsAuthenticated Then FormsAuthentication.RedirectFromLoginPage(txtUsr.Value, _ chkPersist.Checked) Else outMessage.InnerHtml = "Fant ikke brukernavn eller passord, prøv igjen." End IF End Sub </script> Og web.config: <configuration> <system.web> <customErrors mode="Off"/> <authentication mode="Forms"> <forms name=".ASPX" loginUrl="login.aspx" protection="All" timeout="60" /> </authentication> <authorization> <deny users="?" /> </authorization> <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" /> </system.web> </configuration> Må web.config filen ligge i roten? for alt ligger i et par underkataloger. Lenke til kommentar
Gråskjegg Skrevet 30. mars 2005 Del Skrevet 30. mars 2005 Um. "Don't do that" To alvorlige feil: 1) Inline kode. Med mange skrivefeil. Hvis du bruker codebehind i stedet, vil du få mange kompileringsfeil, og de er en god del enklere å rette enn runtime feil. T.d. OloDbConnection Og ytelse vil bli bedre, men det er kanskje ikke så viktig. 2) ALDRI bygg Sqlsetninger basert på ikke-validert brukerinput. Fordi du kan risikere å få noen hackere som brukere. Og de vil typisk velge navn som ' OR TRUE; DROP TABLE admin_users -- ...som gjør at spørringen blir SELECT password FROM admin_users WHERE username='' OR TRUE DROP TABLE admin_users (mulig at MySQL syntaks er litt forskjellig) Google "SQL injection attack" for flere detaljer. Så legg minimum til et par validators, og om mulig bruk lagra prosedyrer og parametriserte spørringer. Men i første omgang vil nok en codebehind fil hjelpe deg med å komme videre, så kan du endre SQLen etter hvert. - grå - Lenke til kommentar
Tobba Skrevet 30. mars 2005 Forfatter Del Skrevet 30. mars 2005 Ok Har lest litt om codebehind, og det virker som det fungerer på samme måtes som klasser i java!? Er helt ny innen ASP.NET men har drevet litt med java, så jeg er litt kjent med objekt orientert programmering. Takk for hjelpen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå