আমি একবারে একাধিক ভূমিকার জন্য একটি নিয়ামককে অনুমোদন যুক্ত করতে চাই।
সাধারণত এটি দেখতে এই রকম হবে:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
তবে আমি আমার ভূমিকাগুলি কনসেটগুলিতে সংরক্ষণ করেছি, যেহেতু এগুলি পরিবর্তন হতে পারে বা কোনও সময় বাড়ানো হতে পারে।
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
আমি এটি করতে পারি না, যেহেতু সংকলনের সময়ে স্ট্রিংটি অবশ্যই জানা উচিত:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
সমস্যা থেকে বাঁচার কোন উপায় আছে কি?
আমি একটি কনস্ট লিখতে পারি যার মধ্যে কেবল "RoleA, RoleB, RoleC" থাকে - তবে আমি যাদু স্ট্রিং পছন্দ করি না এবং এটি একটি যাদু স্ট্রিং। কোনও ভূমিকার নাম পরিবর্তন করা এবং সম্মিলিত স্ট্রিং পরিবর্তন করতে ভুলে যাওয়া বিপর্যয় হবে।
আমি এমভিসি 5 ব্যবহার করছি। ASP.NET পরিচয় এবং ভূমিকা সংকলন সময়ে পরিচিত হয়।