[ Ognjen_NS @ 10.01.2006. 16:47 ] @
Napravio sam klasu koja mi vraca trenutnog usera koji je logovan na winXP, kada pozove m iz web page metodu UserName iz te klase, vraca mi ASPNET, al kad iz Widows Aplikacije korishcenjem iste klase pozovem istu metodu vratimi usera iz AD.
Da li postoji reshenje da i iz web forme tj page dobijem string Usera koji je ulogovan umesto sto dobijam "ASPNET". Vljda sam bio jasan.

evo namespaca i klase koja vraca usera:
using System;
using System.Windows.Forms;
using System.ComponentModel;
namespace SysInfoLib
{
public class SysInfo : Component
{
public SysInfo() { }
public string UserName()
{
return SystemInformation.UserName;

}
}
}

i recimo kada u web strani odradim ovako:

SysInfo korisnik = new SysInfo();
Label1.Text = korisnik.UserName();//i on ovde ubaci "ASPNET"

A za win
SysInfo korisnik = new SysInfo();
TextBox1.Text = korisnik.UserName();//i on ovde ubaci "Ognjen"


hocu i u labelu da bude Ognjen:)


Hvala Unapred
[ Fedya @ 11.01.2006. 10:04 ] @
Gresis, ovaj - gresis silno, sinko

Ovako ces, uvek dobiti ASPNET za web aplikacije.
Property UserName objekta SysInfo vraca korisnika pod cijim nalogom se trenutno izvrsava tvoja aplikacija. Znaci za WinForms to je tvoj nalog, ali se ASP.NET uvek izvrsava u posebnom, ogranicenom Win nalogu koji se zove ASPNET i samim ti ce ti uvek vracati to ime. U svakom slucaju ako bi se Engine ASP-a i izvrsavao u korisnickom nalogu on bi ti vracao ime korisnika koji je ulogovan na SERVERU sto znaci da ako bi aplikaciju upload-ovao na net uvek bi dobio istog usera (u ovom slucaju ASPNET).

Nadam se da sam bio jasan.
[ Ognjen_NS @ 11.01.2006. 11:42 ] @
Fedya

Ok, skontao sam da mora da vrati ASPNET Usera.
Zato sam i "bacio" ovaj svoj vapaj:)



Kazi mi kako onda odraditi gore pomenuto?
[ Fedya @ 11.01.2006. 12:49 ] @
Mislim da ne mozes (ili barem ja nemam ideju kako bi to moglo da se izvede), posto da moze zar ne mislis da bi vecina sajtova na netu vec to uradila (tj. ponudila UserName po default-u? A u svakom slucaju to bi bila zestoka povreda privatnosti.
[ jablan @ 11.01.2006. 13:10 ] @
Pogledaj NTLM authentification i Request.ServerVariables["LOGON_USER"]
[ Fedya @ 11.01.2006. 13:37 ] @
Ne bih da pocinjem raspravu ali:

Request.ServerVariables["LOGON_USER"]

nece raditi. To je zavisno od podesavanja IIS-a i mislim da vraca prazan string ili mozda cak trazi vazece (za server) korisnicko ime i lozinku.
[ jablan @ 11.01.2006. 13:43 ] @
Citat:
Fedya: To je zavisno od podesavanja IIS-a i mislim da vraca prazan string ili mozda cak trazi vazece (za server) korisnicko ime i lozinku.

Naravno da zavisi od podešavanja IIS, to radi samo u okviru domena ako je na IIS postavljena "Integrated Windows" autentifikacija. Naravno da ne može drugačije.
[ Ognjen_NS @ 11.01.2006. 14:07 ] @
Naravno da zavisi od podešavanja IIS, to radi samo u okviru domena ako je na IIS "postavljena "Integrated Windows" autentifikacija. Naravno da ne može drugačije."



Integrated Windows je "otkacen" u IIS, ali takodje i Anonymous jer ako anonymous "iskljucim" izbacuje mi da ukucam username i pass,:(


a za Request.ServerVariables["LOGON_USER"]

Fedya je u pravu, vraca prazan string


Znaci nema SPASA??????


[Ovu poruku je menjao Ognjen_NS dana 11.01.2006. u 15:08 GMT+1]

[Ovu poruku je menjao Ognjen_NS dana 11.01.2006. u 15:09 GMT+1]
[ jablan @ 11.01.2006. 14:30 ] @
Citat:
Ognjen_NS: Integrated Windows je "otkacen" u IIS, ali takodje i Anonymous jer ako anonymous "iskljucim" izbacuje mi da ukucam username i pass,:(

Mislim da i u web.configu moraš da postaviš authentication na "Windows".
[ mmix @ 11.01.2006. 17:35 ] @
Citat:
Ognjen_NS: Integrated Windows je "otkacen" u IIS, ali takodje i Anonymous jer ako anonymous "iskljucim" izbacuje mi da ukucam username i pass,:(


Ovo ti je zbog security settings-a u tvom browseru, nema veze sa IISom. IIS zahteva authentikaciju a tvoj browser je podesen da ne salje NTLM response automatski. Prvo proveri da li ti je sajt uopste u "Intranet" zoni kad ga startujes (donji desni ugao na IEu). Obicno, ako se sajt startuje van localhost-a (preko DNS imena ili IP adrese), automatski ide u Internet zonu koja ne dozvoljava automatsko logovanje i onda ti izbaci user/pass dijalog. Po defaultu, logovanje se desava samo u Intranet i Secure Site zoni.

[ Ognjen_NS @ 12.01.2006. 12:00 ] @
mmix
postavavio sam na "localIntranet" i u web.config postavio autentikaciju na windows, i dalje mi u textboxu vraca user-a ASPNET?


sta jos moze da bude, nemam vise ideja?

PS:aplikacija bi radila na lokalnoj mrezi
ne na internetu


znaci, Treba mi user WinNt-a recimo "Djordje" a ne "ASPNET":)

Hvala









[Ovu poruku je menjao Ognjen_NS dana 12.01.2006. u 13:11 GMT+1]
[ mmix @ 12.01.2006. 14:08 ] @
Citat:
Ognjen_NS: mmix, postavavio sam na "localIntranet" i u web.config postavio autentikaciju na windows, i dalje mi u textboxu vraca user-a ASPNET?

Malo je to problematicno kod tebe posto koristis IIS5, koji vise nigde nemam pa ne mogu da testiram ovo sto ti pricam, ali prodji kroz sledecu listu:

1. u IIS-u konfigurisi security da bude ukljucen SAMO "Integrated Windows" (a.k.a. NTLM), Anonymous mora obavezni biti iskljucen (posto ce uvek ici tuda po defaultu ako je ukljuceno i onda ces uvek dobijati ASPNET)

2. U web.config stavis authentication metod na "Windows". Ovo po defaultu nece promeniti account pod kojim radi thread stranice, ali mislim (nisam siguran) da je neophodno za sledecu stavku

3. Ubaci "<identity impersonate="true"> u web.config na istom nivou sam <authentication> tagom.

Ovo ti je matrica rezultata security check-a u IIS NTLM authentikaciji, i sta ce ti koja identity varijabla vratiti. U principu tebi treba neka od kombinacija koja ce ti dati Domain\UserName :


Code:

Table: IIS integrated Windows security

Web.config Settings                  Variable Location     Resultant Identity 

<identity impersonate="true"/>       HttpContext           Domain\UserName
<authentication mode="Windows"/>     WindowsIdentity       Domain\UserName
                                     Thread                Domain\UserName


<identity impersonate="false"/>      HttpContext           Domain\UserName
<authentication mode="Windows"/>     WindowsIdentity       MACHINE\ASPNET
                                     Thread                Domain\UserName

<identity impersonate="true"/>       HttpContext           Name provided by user
<authentication mode="Forms"/>       WindowsIdentity       Domain\UserName
                                     Thread                Name provided by user


<identity impersonate="false"/>      HttpContext           Name provided by user
<authentication mode="Forms"/>       WindowsIdentity       MACHINE\ASPNET
                                     Thread                Name provided by user

[ Ognjen_NS @ 12.01.2006. 22:23 ] @
mmix
kao i uvek u pravu si :), hvala ti mnogo a i ostalima

uspela mi je ova varijanta:

<authentication mode="Forms"/>
<identity impersonate="true"/>
[ mmix @ 13.01.2006. 12:20 ] @
Citat:
Ognjen_NS: uspela mi je ova varijanta:

<authentication mode="Forms"/>
<identity impersonate="true"/>

Nema na cemu, al sad pazi ovako U toj opciji, tvoj program se izvrsava u windows contextu usera (recimo Djordje), tako da mozes imati problema ako tvoja aplikacija mora pristupati necemu sto nije dozvoljeno obicnim "Domain Users" nalozima. Zapravo aplikacija je ogranicana u istoj meri kao da je Djordje ulogovan i koristi je direktno na serveru.
Ako je to problem, (neki put moze da bude), mozes da prebacis na authentication=windows, impersonate=false i da umesto WindowsIdentity ocitas UserIdentity iz HttpContext-a. Dobices isto Djordje kao authentifikovanog korisnika, ali ce ti aplikacija raditi pod jedinstvenim accountom (ASPNET).
Sa druge stane, neko voli da aplikacije rade pod nalogom krajnjeg korisnika, jer onda mozes koristiti NTFS security da kontrolises pristup folderima, itd, itd... Sa stanovista MS-a to je proporucljiv metod za INtranet aplikacije zbog single sign-on i mogucnosti da administratori konfigurisu pristup aplikaciji...
[ Ognjen_NS @ 13.01.2006. 13:13 ] @
mmix,


ja mislim da su svi useri koje budem "cupao" u grupi administratori, tako da valjda ne bi trebalo da bude problema, videcu kad odem na fax:) kkao ce da sljaka, mislim samo da sql 2005 treba malko da se podesi i da ce da sljaka, videcemo u utorak:)
poz