Forum

MVC Authorization (...
 
Bildirimler
Hepsini Temizle

MVC Authorization (Rolleme) İşlemleri Hakkında

Halil İbrahim AYHAN
(@ibrahimayhan)
Üye

Merhabalar ÇözümPark ve Ekibi,
Üzerinde Çalıştığım Bir MVC Projesinde Controller Tabanlı Rol İşlemi Uygulamaktayım,
Yalnız MVC Roller Üzerinde Kişiye Özel Belirttiğim Yetki Kodu ( Rol ) İle İlgili Controller ve View Görüntüleyerek İşlem Yapmaktadır,

Global.asax.cs
GlobalFilters.Filters.Add(new AuthorizeAttribute());
Giris Controller
var YetkiBilgisi = DB.YetkiIslemleri.Where(X => X.KayitNo == GirisIslemi.YetkiIslemleriKayitNo).FirstOrDefault();
 FormsAuthentication.SetAuthCookie(GirisIslemi.KayitNo.ToString(), false);
public override string[] GetRolesForUser(string KayitNo)
{
BTMEntities DB = new BTMEntities();
int KN = Convert.ToInt32(KayitNo);
var YetkiBilgisi = DB.YetkiIslemleri.Where(X => X.KullaniciIslemleriKayitNo == KN).SingleOrDefault();
return new string[] { YetkiBilgisi.IslemTanimi.ToString() };
}

 

Screenshot 24

Roller Yapısında Bir Kişinin Sadece Bir Adet IslemTanımı Yetkisi Bulunmaktadır,

Burada Oluşturmak İstediğim Yapı Yeni Bir IslemTanımı İle ( Örnek Olarak 4 ) İlgili Kişilerde Varsa, Belirlediğim Controller Üzerinden İşlem Yapabilsin ve View Görüntülemesidir,

Controller Authorize
[Authorize(Roles = "0,2")]
View Role Kontrolü
if (User.IsInRole("0"))

Yukarıdaki Yapı Üzerinde Bir Kişinin Sadece Bir IslemTanimi Olduğu İçin Controller Authorize Üzerinde Nasıl Bir İşlem Yapmam Gerekiyor ?

Bu Konuda Nasıl Bir İşlem Yapmam Gerekmektedir ?
Sizlerden Bilgi Beklemekteyim, İyi Çalışmalar...

Alıntı
Konu başlatıcı Gönderildi : 19/07/2021 10:38
Konu Etiketleri

Erdem SELÇUK
(@eravse)
Saygın Üye Forum Yöneticisi
Gönderen: @ibrahimayhan

Merhabalar ÇözümPark ve Ekibi,
Üzerinde Çalıştığım Bir MVC Projesinde Controller Tabanlı Rol İşlemi Uygulamaktayım,
Yalnız MVC Roller Üzerinde Kişiye Özel Belirttiğim Yetki Kodu ( Rol ) İle İlgili Controller ve View Görüntüleyerek İşlem Yapmaktadır,

Global.asax.cs
GlobalFilters.Filters.Add(new AuthorizeAttribute());
Giris Controller
var YetkiBilgisi = DB.YetkiIslemleri.Where(X => X.KayitNo == GirisIslemi.YetkiIslemleriKayitNo).FirstOrDefault();
 FormsAuthentication.SetAuthCookie(GirisIslemi.KayitNo.ToString(), false);
public override string[] GetRolesForUser(string KayitNo)
{
BTMEntities DB = new BTMEntities();
int KN = Convert.ToInt32(KayitNo);
var YetkiBilgisi = DB.YetkiIslemleri.Where(X => X.KullaniciIslemleriKayitNo == KN).SingleOrDefault();
return new string[] { YetkiBilgisi.IslemTanimi.ToString() };
}

 

Screenshot 24

Roller Yapısında Bir Kişinin Sadece Bir Adet IslemTanımı Yetkisi Bulunmaktadır,

Burada Oluşturmak İstediğim Yapı Yeni Bir IslemTanımı İle ( Örnek Olarak 4 ) İlgili Kişilerde Varsa, Belirlediğim Controller Üzerinden İşlem Yapabilsin ve View Görüntülemesidir,

Controller Authorize
[Authorize(Roles = "0,2")]
View Role Kontrolü
if (User.IsInRole("0"))

Yukarıdaki Yapı Üzerinde Bir Kişinin Sadece Bir IslemTanimi Olduğu İçin Controller Authorize Üzerinde Nasıl Bir İşlem Yapmam Gerekiyor ?

Bu Konuda Nasıl Bir İşlem Yapmam Gerekmektedir ?
Sizlerden Bilgi Beklemekteyim, İyi Çalışmalar...

Merhaba, 

 

bu konuda koda claims eklememişsiniz zannedersem teorik olarak doğru ama login olduğunda o claimsi oluşturmanız lazım

örnek 

 

  List<System.Security.Claims.Claim> claims = new List<System.Security.Claims.Claim>
                                {
                                    new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, user.Result.Adi),
                                    new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Email, user.Result.Email),
                                    new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Role,"Stadart"),
                                    new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.UserData,""),
                                };

                        
                            ClaimsIdentity identity = new ClaimsIdentity(claims, "cookie");
                         
                            System.Security.Claims.ClaimsPrincipal principal = new System.Security.Claims.ClaimsPrincipal(identity);
                        
                        await HttpContext.SignInAsync(
                       scheme: CookieAuthenticationDefaults.AuthenticationScheme,
                       principal: principal);

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

CevapAlıntı
Gönderildi : 02/10/2021 20:54
Hakan Uzuner beğendi

Paylaş: