Utisci korisnika

Kada sam na fakultetu polagala ispit iz Obrazovne tehnologije jedno od pitanja je bilo nastava na daljinu. Pojam, značenje, prednosti i nedostaci su mi bili poznati ali u isto vreme daleki, nedostižni…

Pre nepunih mesec dana kupila sam paket kurseva: PRIPREME ZA POLAGANJE CAMBRIDGE INTERNATIONAL DIPLOMA IN BUSINESS. Obično neki opšti utisak formiramo na kraju, ali ja u ovom trenutku želim sa…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Advanced Web Application Technologies

Modul: Sigurnost ASP.NET veb aplikacija

Autor: Goran Aritonović

Naziv jedinice: Korisnički profili


Materijali vezani uz ovu lekciju:

- Test korisnički profili
- Korisnički profili (PDF dokument)



Pojam korisničkog profila

Profile je skup informacija koji se čuva za korisnike web sajta. To je kolekcija svojstava koje ASP.NET čuva u dinamički generisanoj klasi. Ta svojstva su ili prosti tipovi podataka ili kompleksne strukture podataka kao što su npr. ArrayList-e. Provajderi profila omogućavaju ASP.NET strani da čuva i čita profile koristeći uobičajeni API bez obzira na način čuvanja podataka. Podrazumevani provajder profila je System.Web.Profile.SQLProfileProvider koji kao mehanizam za čuvanje profila koristi SQL Server.


Čuvanje korisničkog profila

Unutar web strane profilu se pristupa korišćenjem propertija Profile.

ASP.NET čita web.config fajl i autometski generiše klasu koja se može iščitavati korišćenjem Profile svojstva HttpContext klase. Profili se mogu čuvati kako za autentifikovane tako i za anonimne korisnike. Pre nego što startuje životni ciklus strane ASP.NET proverava da li je profil raspoloživ za stranu. Na kraju životnog ciklusa strne ASP.NET čuva profil u definisanom skladištu podataka.


Kreiranje osnovnog korisničkog profila

Potrebno je definisati strukturu podataka koja se koristi za čuvanje profila što se specificira atributom defaultProvider. Profil se sastoji od skupa svojstava koja imaju svoje ime i tip podaka koji predstavljaju. Svojstva se definišu dodavanjem <add> elemenata unutar  <properties> elementa koji se nalazi između tagova <profile> i </profile> u fajlu web.config. Unutar profila je definisano je 5 svojstava. Npr. svojstvo PostalCode je tipa string i ima atribut allowAnonymous  postavljen na vrednost true, što znači da mu mogu pristupati i anonimni tj. neautentifikovani korisnici.

<anonymousIdentification enabled="true"/>
<profile defaultProvider="AspNetSqlProfileProvider">
<properties>
<add name="PostalCode" type=“string" allowAnonymous="true"/>
 <add name="BackColor" type="string" />
 <add name="ForeColor" type="string" />
 <add name="Height" type="int" />
 <add name="Width" type="int" />
 </properties>
</profile>


Atributi svojstava unutar profila

Atribut allowAnonymous određuje da li je dozvoljeno čuvanje vrednosti za anonimne korisnike (podrazumevana vrednost je false). Atribut defaultValue definiše podrazumevanu vrednost svojstva. Atribut name određuje ime svojstva. Atribut provider – definiše ime provajdera koji čita i piše vrednosti propertija. Atribut readOnly – definiše da li se svojstvo može samo čitati (podrazumevana vrednost je false). Atribut serializeAs svojstvo definiše kako serijalizovati vrednost svojstva (Xml, Binary, String, i ProviderSpecific). Atribut type  određuje tip podataka u svojstvu (podrazumevana vrednost je string).


Primer čuvanja profila za anonimnog korisnika

U profilu su definisana dva svojstva PostalCode i BojaPozadine. Za oba svojstva atribut allowAnonymous je postavljen na vrednost true. U event handleru za dugme btnUpdatePreferences se postavljaju vrednosti profila. Korišćenjem izraza Profile.PostalCode pristupa se svojstvu PostalCode i njegova vrednost se postavlja na vrednost pročitanu iz kontrole TextBox1.Svojstvo BojaPozadine postavlja se na vrednost pročitanu iz dropdown liste.

<anonymousIdentification enabled="true"/>
<profile>
<properties>
<add name="PostalCode" type="string" allowAnonymous="true"    />
<add name="BojaPozadine" type="System.Drawing.Color" allowAnonymous="true" serializeAs="Binary" />
</properties>
</profile>


// setovanje svojstava profila
void btnUpdatePreferences_Click(object sender, EventArgs e)
  {
    // setovanje profila
    //Profile.PostalCode = Server.HtmlEncode(TextBox1.Text);
    Profile.PostalCode = TextBox1.Text;
    Profile.BojaPozadine = Color.FromName(ddlColor.SelectedValue);
    Response.Redirect(Request.Url.LocalPath);
  }


U Page_Load događaju strane postavljaju se vrednosti odgovarajućih kontrola na strani na osnovu vrednosti sadržanih u svojstvima unutar profila.

void Page_Load(object sender, EventArgs e)
  {  
    if (!Page.IsPostBack)
    {
    //prvo ucitavanje strane
    if (Profile.PostalCode != null)
    LabelPostanskiBroj.Text = Profile.PostalCode;
               
    // ako postoji svojstvo BojaPozadine
    if (Profile.BojaPozadine != Color.Empty)
     ddlColor.SelectedValue =
     Profile.BojaPozadine.ToKnownColor().ToString();
     styleContainer.Style.Add(HtmlTextWriterStyle.BackgroundColor,
     Profile.BojaPozadine.ToKnownColor().ToString());
    }
  }


Uočiti da je styleContainer div tag unutar html dela strane.

<div id="styleContainer" runat=server>


Grupisanje svojstava u profilu i definisanje podrazumevanih vrednosti svojstava

Unutar profila je moguće izvršiti grupisanje više svojstava. To se postiže tako što se u web.config fajlu između tagova <properties>  i </properties> doda tag <group name="">.Zatim se izvrši dodavanje svojstav u grupu na isti način kao što se dodaju svojstva direktno u profil. U slećem primeru grupa Font ima svojstvo Name i svojstvo SizeInPoints.

<profile>
  <properties>
        ....
      <group name="Font">
         <add name="Name" type="string" defaultValue="verdana“allowAnonymous="true" />
         <add name="SizeInPoints" type="int" defaultValue="8“allowAnonymous="true" />
     </group>
     ......
   </properties>  
</profile>


Upotreba grupisanih svojstava

Ovde je prikazan način pristupa svojstvima u grupi. Svojstvu Name u grupi Font pristupa se korišćenjem izraza Profile.Font.Name.

protected void Button1_Click(object sender, EventArgs e)
    {
        Profile.Font.Name = TextNaziv.Text;
        Profile.Font.SizeInPoints = Convert.ToInt32(TextVelicina.Text);
        Response.Redirect(Request.UrlReferrer.LocalPath);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Label1.Text = Profile.Font.Name +
            Profile.Font.SizeInPoints.ToString();
            Button1.Style["font-name"] = Label1.Text = Profile.Font.Name;
            Button1.Style["font-size"] = String.Format("{0}pt",
            Profile.Font.SizeInPoints);
        }
    }



Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:0


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: