• 1400/03/04

عدم نمایش لینک در ویو با احراز هویت داینامیک :

سلام جناب هاشم پور عزیز.

 

آقا وقتی از احراز هویت داینامیک داریم استفاده می کنیم چطور میشه این احراز هویت رو توی المان های داخل ویو هم دخیل کرد. که مثلا یک لینک رو نشون نده برای کاربری که اون claim رو نداره

منظورم یک چیزی مثل اینکه میگفتیم 

if(user.IsInRole("myRole"){
   /* my tags */
 }

در کل میخوام لینکی که مربوط به مثلا ویرایش کاربر هست و کاربر اون مجوز رو نداره نبینه

  • 1400/03/04
  • ساعت 10:44

فکر کنم راهش رو پیدا کردم.

همه ی لینک هام رو با استفاده از hasClaim محدود کردم. به این صورت که لینک های مربوط به هر اکشن رو داخل شرط متناظر با اون گذاشتم

//---- controller
[ClaimBasedAuthorization(BasicControllerClaimValues.GetAllProvince)]
public async Task<IActionResult> GetAllProvince()
{
    /*my code*/
}
//----- view
@if (User.HasClaim(ClaimStore.UserAccess, BasicControllerClaimValues.GetAllProvince))
{
   <a href="/Province">استان</a>
}

  • 1400/03/04
  • ساعت 11:00

سلام عزیز.

احرازهویت داینامیک ورژن 2 که داریم استفاده میکینم صرفا از لحاظ کلی، احرازهویت بر اساس Claim هستش که صرفا برای اینکه داینامیک بشه میشه گفت ارتقاش دادیم.

پس برای اینکه داخل ویو ها یا جای دیگه بخوایم چک کنیم ببینیم کاربر دسترسی داره که فرضا اکشن متود X رو ببینه باید از همون کدی که فرستادید استفاده کنیم :

@if (User.HasClaim(ClaimStore.UserAccess, "X"))
{
   <a href="/Province">استان</a>
}

و اون استرینگ X همون claim هستش که روی اکشن متود استفاده کردیم.


logo-samandehi