[ bokiko @ 27.02.2006. 15:50 ] @
Pokusavam da zastitim kod od neovlascenih korisnika na taj nacin sto samo korisnik koji se ulogovao pod Windows-ovim korisnickim imenom 'bokiko' moze da otvori novu Windows formu kada klikne na dugme button1. Koristim atribute da bi zastitio metodu koja poziva formu. Kod izgleda ovako:

[PrincipalPermission(SecurityAction.Demand,Name="bokiko")]
private void button1_Click(object sender, EventArgs e)
{
Form2 myForm = new Form2();
myForm.Show();
}

Kada kliknem na dugme ispaljuje se izuzetak 'Request for principal permission failed'.
Gde gresim !!!
Ulogovan sam kao bokiko.
[ mmix @ 27.02.2006. 17:21 ] @
Iz MSDN-a:

Citat:
Prior to a demand for principal permission it is necessary to set the current application domain's principal policy to the enumeration value WindowsPrincipal. By default, the principal policy is set to UnauthenticatedPrincipal. If you do not set the principal policy to WindowsPrincipal, a demand for principal permission will fail. The following code should be executed before the principal permission is demanded:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);


Bez gornje linije coda, principal nece uopste biti popunjen, samim tim ce provera propasti. Takodje, Name parametar mora da ukljucuje domen korisnika tj:

Name = @"MYDOMAIN\bokiko" ako se logujes na domen, tj.
Name = @"MYLOCALCOMPNAME\bokiko" ako se logujes na lokalnu masinu