[ milanvla @ 25.09.2005. 18:29 ] @
napravio sam malu aplikaciju u asp.net, c# koja koristi access bazu. u localu radi se fino ali kada postavim na server kao da ne reaguje na bazu

treba samo da ispise sadrzaj tabele i sve to radi super u lokalu

na serveru nista, niti javlja greske

javljao je nesto za Web.config dok ga nisam ispravio ali posle nista.
zna li neko sta moze da bude

hvala
[ Radudzoni @ 26.09.2005. 01:20 ] @
A kako si naveo putanju do baze u konekcionom stringu? Mozda je to problem...
[ milanvla @ 26.09.2005. 12:07 ] @
definisao sam putanju ovako u web.config fajlu
Code:

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>

  <appSettings>
     <add key="conString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath ("./database/database.mdb"); />      
  </appSettings>

</configuration>

[ milanvla @ 26.09.2005. 13:32 ] @
i ovo sam primetio da zeza

u prvoj liniji gde stoji

Code:

<%@ Page language="c#" Codebehind="database.aspx.cs" AutoEventWireup="false" Inherits="Demo.database" %>


ovo Inherits="Demo.database" mu smeta kada je na serveru i dok tu liniju ne skinem nece da radi?

dok u localu sljaka dobro ...
[ milanvla @ 26.09.2005. 13:33 ] @
u stvari probao sam razne kombinaice i mislim da connection string ne zeza vec nesto drugo

cak i kada za putanju do baze izlupam nesto on ne javlja gresku
[ vekica @ 13.09.2006. 10:59 ] @
covece isti problem... to ima verovatno veze asp.net account i sql server se nesto ne vole?


kako si resio problem???



samo da napomenem kod mene je problme u asp.net 2.0 (1.1 radi) a u pitanju je win server 2003.
aplikacije su u razlictim application poolovima
[ Dejan Vesic @ 13.09.2006. 14:06 ] @
Problem je skoro sigurno u načinu kako se aplikacija kači na bazu.

NE koristite Windows Integrated login VEĆ kreirajte POSEBAN SQL nalog i njegov username / pass koristite da iz aplikacije pristupite bazi.

Ako to proradi u lokalu, proradiće i na serveru.
[ vekica @ 14.09.2006. 09:04 ] @
Odlicno Dejan Vesic.

PROBLEM RESEN


Hvala veliko...


cisto informativno> a zasto nece da pusti win integrated... to asp.net account nema nekih privilegija???
[ Dejan Vesic @ 14.09.2006. 10:20 ] @
Celo zamešateljstvo oko Windows Integrated logina je prvenstveno namenjeno za korisnike desktop aplikacija:

- ako ste se ulogovali na mašinu, to znači da ste uneli username/password i Win Integrated vam omogućava da koristite aplikacije bez da ponovo unosite uid / pwd

To gubi smisla kod serverskih (ASP.NET i sličnih aplikacija).

So, da bi Windows Integrated radio za ASP.NET i na serveru, mora da se sprovesti gomila akcija:

1. Detektovati pod kojim Windows identitetom radi aplikacija na serveru
2. Dati tom lokalnom useru prava da se uopšte loguje na bazu

(više detalja ovde: http://msdn2.microsoft.com/en-us/library/bsz5788z.aspx )

To je generalno smaranje - mnogo je jednostavnije raditi sa bazom kako je i predviđeno: kreiraš SQL login i voziš.
[ negyxo @ 14.09.2006. 10:24 ] @
Pa evo kako se stvari odvijaju:
Kada kreiras user-a u SQL Expressu on mora biti mapiran na odredjeni login koji si takodje ti ili tvoja aplikacija namestio. Ako radis sa windows nalogom, tj. kreiras login koji ce se oslanjati na windows athentication, SQL Express ce morati onda da mapira puno ime windows naloga, DomainName\ObjectName, gde je u vecini slucajeva DomainName ime tvog racunara a ObjectName ime usera (windows user). Videces da ako probas da dodelis neko bezveze ime za login name, da kreiranje nalog nece uspeti, jer prilikom kreiranja se proverava da li taj user postoji u windowsu. Posto kreiras login onda je potrebno u tvojoj bazi da kreiras user-a koji ce pristupati preko tog login-a. Ovo je prost proces i nema mnogo filozofije. Jednostavno se kaze preko kog login-a ce se user loginovati (al je zahebano pisati na srpskom ) i to je sve sto je potrebno da bi pristupio bazi.
E sad problem nastaje kada se baza preseli na drugi racunar koji nosi drugi naziv, drugim recima nije vise isti racunar, tvoj user ostaje u bazi ali na serveru pitanje je da li postoji takav login na koji se tvoj user mapira. I tu lezi problem. Potrebno je ponovo mapirati usera na neki od postojecih loginova na serveru. Mislim da vecina radi iz menadzera ove stvari tako sto pobrise zeljenog usera pa ga ponovo doda sa odgovarajucim loginom. Mada postoje ako se ne varam i procedure koje mogu da izmene login za usera bez potrebe da se isti obrise pa ponovo doda. Ovo je mozda sigurniji metod jer odredjenom user-u mogu biti dodeljenji specificni rolovi pa ako se pobrise onda je potrebno sve nanovo podesiti. Jos, ako se ne varam, u SQL 2005 su uvedene scheme (ili je to bilo i pre ?) pa ako se i obrise user nije tako velika frka jer se owner nekog objekta mapira na schemu a ne na usera.

I sad sta ciniti. Pa moze kao sto je Vesic rekao ali ne znam da li je to ispravno, ustvari nema sta neispravno radice to, nego svuda na MSDN-u se spominje da se koristi Windows authentication umesto SQL authenticationa. Znaci ostaje samo da se mapira user na neki od postojeci login-ova. Jedno resenje koje sam video je da server na kome se hostuje aplikacija sam kreira user-a prilikom attach-a i mapira ga na odredjeni login na serveru.


[ vekica @ 14.09.2006. 10:56 ] @
aj ja cu biti laik...
imam asp.net aplikaciju. i ona se kaci na sql server.
znaci korisnik gadja stranicu na serveru i ta stranica odlazi u web.config uzima connection string (da srpski je super :) ) i tu vidi windwos integrated login.


posto asp.net account komunicira sa bazom ja sam dodao tog usera/account u bazu. (imam: dbo, guest i asp.net).

da li se aplikacija (web) izvrsava pod asp.net nalogom ili win nalogom?

jer ako je za nju zaduzen asp.net nalog pitanje je gde se ovde javlja sam win nalog, gde su njegove dozvole, zasta je on odgovoran???




i slazem se, sasvim je logicno da windows integarated security radi za win aplikacije, ali za web bi bilo logicno da je asp.net account zaduzen.
ovo bi bilo logicno?
[ Dejan Vesic @ 14.09.2006. 11:34 ] @
Citat:
negyxo:I sad sta ciniti. Pa moze kao sto je Vesic rekao ali ne znam da li je to ispravno, ustvari nema sta neispravno radice to, nego svuda na MSDN-u se spominje da se koristi Windows authentication umesto SQL authenticationa. Znaci ostaje samo da se mapira user na neki od postojeci login-ova. Jedno resenje koje sam video je da server na kome se hostuje aplikacija sam kreira user-a prilikom attach-a i mapira ga na odredjeni login na serveru.


Hm, hajde da raščistimo neke sitnice:

- SQL server može da radi u dva moda: Mixed (WinInt + SQL auth) ili samo WinInt
- za serverske (web) aplikacije PREPORUKA je da se koristi SQL Auth upravo iz razloga hostovanja kod drugih provajdera
- to NE VAŽI za Intranet web aplikacije tj. web aplikacije kod kojih su korisnici na jednom domenu; ako se pravi intranet, onda se može iskoristiti inpersonifikacija, što praktično znači:

1. Znaš koji je korisnik ulogovan
2. Znaš kojim grupama na DOMENU pripada
3. Znaš šta sme a šta ne sme da radi / vidi

- kod uobičajenih (ne-web) aplikacija, ovo se rešava na druge načine (user / roles u .Net Frameworku 2.0 ili sopstvenom implementacijom autorizacije)

So:

Intranet app -> Windows Integrated Security

Public web app -> SQL Authentication

Microsoft savetuje korišćenje WinAuth jer se prosto nada da ćete koristiti IE kao browser, koji opet može da radi WinAuth i preko Interneta - ali ovo NIJE standardan način (probajte da pristupite takvoj Web app iz Opere ili Safarija pa ćete videti).

[ dusty @ 14.09.2006. 12:25 ] @
Citat:
da li se aplikacija (web) izvrsava pod asp.net nalogom ili win nalogom


Zavisi da li si iskljucio/ukljucio Impersonation, ako je iskljuceno onda ce raditi pod ASP.Net nalogom (odnosno, nalogom pod kojim si dao da se pokrece IIS worker proces).

Citat:
Celo zamešateljstvo oko Windows Integrated logina je prvenstveno namenjeno za korisnike desktop aplikacija


Pa ne bih rekao. Zamisli intranet web aplikacije/servise, firme koja drzi do bezbednosti.

Citat:
Microsoft savetuje korišćenje WinAuth jer se prosto nada da ćete koristiti IE kao browser, koji opet može da radi WinAuth i preko Interneta


Sta je to WinAuth ? Jel to NTLM autentikacija ?
[ negyxo @ 14.09.2006. 12:36 ] @
Vesicu sve sto si napisao stoji.
Ja sam samo napisao sta peroporucju u MS-u i nista vise. Mene je licno ovo isto nerviralo kada sam krenuo sa radom na jednom projektu a nisam mnogo znao security modelu SQL Servera. Cak sta vise ovde sam na MS SQL forumu postovao taj problem ali mi niko nije odgovorio. Tako da sam ja po preporuci MS-a nastavio sa win authentication.

Ovo je pisalo u BOL SQL Server 2000
Citat:

SQL Server Authentication is provided for backward compatibility


Da bi sad napisali
Citat:

SQL Server Authentication is provided for backward compatibility only. When possible, use Windows Authentication.


Moram priznati nisam ovo citao ponovo. Sad se izgleda vec nesto menja, when possible...
[ Dejan Vesic @ 14.09.2006. 12:45 ] @
Citat:
Pa ne bih rekao. Zamisli intranet web aplikacije/servise, firme koja drzi do bezbednosti.


Upravo sam to i napisao:

Intranet app -> Windows Integrated Security

Citat:
: Sta je to WinAuth ? Jel to NTLM autentikacija ?


Da.
[ dusty @ 14.09.2006. 13:23 ] @
Citat:
Intranet app -> Windows Integrated Security


Jeste, ali naglasak je bio na web :P

Citat:
koji opet može da radi WinAuth i preko Interneta


Ovo mi nije jasno :( Preko cega inace ide NTLM autentikacija ako ne preko inter/intraneta ?
[ mmix @ 14.09.2006. 15:17 ] @
Citat:
dusty: Ovo mi nije jasno :( Preko cega inace ide NTLM autentikacija ako ne preko inter/intraneta ?


babe i zabe. NTLM je samo protokol o razmeni binarnih "blobova" u svrhu identifikovanja "korisnika". Transport layer moze da bude bilo koji, ako si dokon mozes da napravis NTLM authentikaciju preko emaila.
BTW, pre Kerberos-a, Windows platofrma je koristila NTLM za authentikaciju korisnika na domenu i u peer (workgroup) mrezama gde se i danas koristi. Svaki put kad si pristupao share-u na serveru u pozadini se obavljala NTLM authentikacija.