আমি বিস্মিত হয়েছি যে গুগলিংয়ের বেশ কয়েক ঘন্টা পরে আমার অ্যাপিকন্ট্রোলার পদ্ধতিতে অনুমোদন বৈশিষ্ট্যটি ব্যবহার করার জন্য লগইন স্ক্রিন থেকে কোনও ব্যবহারকারীকে কীভাবে প্রমাণীকরণ করব তার স্পষ্ট উদাহরণ আমি কীভাবে খুঁজে পাচ্ছি না।
কারণ আপনি এই দুটি ধারণা সম্পর্কে বিভ্রান্ত হচ্ছেন:
প্রমাণীকরণ হ'ল প্রক্রিয়া যার মাধ্যমে সিস্টেমগুলি নিরাপদে তাদের ব্যবহারকারীদের সনাক্ত করতে পারে। প্রমাণীকরণ সিস্টেমগুলি প্রশ্নের উত্তর সরবরাহ করে:
- ব্যবহারকারী কে?
- ব্যবহারকারী কি আসলে তিনি নিজেকে প্রতিনিধিত্ব করেন?
অনুমোদন হ'ল প্রক্রিয়া যার মাধ্যমে একটি সিস্টেম নির্ধারণ করে যে কোনও নির্দিষ্ট অনুমোদনপ্রাপ্ত ব্যবহারকারীকে সিস্টেম দ্বারা নিয়ন্ত্রিত সংস্থানগুলি সুরক্ষিত রাখতে হবে what উদাহরণস্বরূপ, একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেমটি এমনভাবে নকশাকৃত করা যেতে পারে যাতে নির্দিষ্ট নির্দিষ্ট ব্যক্তিদের ডেটাবেস থেকে তথ্য পুনরুদ্ধার করার ক্ষমতা দেওয়া হয় তবে ডেটাবেসে সঞ্চিত ডেটা পরিবর্তন করার ক্ষমতা না করে অন্য ব্যক্তিকে ডেটা পরিবর্তন করার ক্ষমতা দেওয়া হয়। অনুমোদন সিস্টেমগুলি প্রশ্নের উত্তর সরবরাহ করে:
- ব্যবহারকারী এক্স কি রিসোর্স অ্যাক্সেসের জন্য অনুমোদিত?
- ব্যবহারকারী এক্স অপারেশন পি সঞ্চালনের জন্য অনুমোদিত?
- ব্যবহারকারী এক্স কি রিসোর্স আর এ অপারেশন পি সম্পাদনের জন্য অনুমোদিত?
Authorize
MVC মধ্যে অ্যাট্রিবিউট উদাহরণস্বরূপ এক্সেস নিয়ম প্রযোজ্য হয়, ব্যবহার করা হয়:
[System.Web.Http.Authorize(Roles = "Admin, Super User")]
public ActionResult AdministratorsOnly()
{
return View();
}
উপরে নিয়ম শুধুমাত্র অনুমতি দেবে ব্যবহারকারীদের এডমিন এবং সুপার ইউজার ভূমিকা পদ্ধতি অ্যাক্সেস করতে
এই নিয়মগুলি location
উপাদানটি ব্যবহার করে ওয়েবকনফিগ ফাইলেও সেট করা যেতে পারে । উদাহরণ:
<location path="Home/AdministratorsOnly">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
যাইহোক, এই অনুমোদনের বিধিগুলি কার্যকর করার আগে আপনাকে বর্তমান ওয়েব সাইটে প্রমাণীকরণ করতে হবে ।
যদিও এগুলি অননুমোদিত অনুরোধগুলি কীভাবে পরিচালনা করতে হয় তা ব্যাখ্যা করে, এটি ব্যবহারকারীর শংসাপত্রগুলির জন্য জিজ্ঞাসা করার জন্য এবং এগুলিকে বৈধ করার জন্য লগইনকন্ট্রোলারের মতো কিছু বা স্পষ্টভাবে প্রদর্শন করে না।
এখান থেকে, আমরা সমস্যাটিকে দুটি ভাগে ভাগ করতে পারি:
একই ওয়েব অ্যাপ্লিকেশনের মধ্যে থাকা ওয়েব এপিআই পরিষেবাদি ব্যবহার করার সময় ব্যবহারকারীদের প্রমাণীকরণ করুন
এটি হ'ল সহজ উপায়, কারণ আপনি এএসপি.নেটে প্রমাণীকরণের উপর নির্ভর করবেন
এটি একটি সহজ উদাহরণ:
Web.config
<authentication mode="Forms">
<forms
protection="All"
slidingExpiration="true"
loginUrl="account/login"
cookieless="UseCookies"
enableCrossAppRedirects="false"
name="cookieName"
/>
</authentication>
ব্যবহারকারীদের অ্যাকাউন্ট / লগইন রুটে পুনঃনির্দেশিত করা হবে , সেখানে আপনি ব্যবহারকারীর শংসাপত্রগুলির জন্য জিজ্ঞাসা করতে কাস্টম নিয়ন্ত্রণগুলি সরবরাহ করবেন এবং তারপরে আপনি ব্যবহার করে প্রমাণীকরণ কুকি সেট করবেন:
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
ক্রস - প্ল্যাটফর্ম প্রমাণীকরণ
এই ক্ষেত্রে যখন আপনি কেবল ওয়েব অ্যাপ্লিকেশনটির মধ্যে কেবল ওয়েব এপিআই পরিষেবাদি প্রকাশ করছেন , তখন আপনার কাছে আরও একটি ক্লায়েন্ট সেবা গ্রহণ করবে, ক্লায়েন্টটি অন্য ওয়েব অ্যাপ্লিকেশন বা কোনও নেট নেট অ্যাপ্লিকেশন (উইন ফর্ম, ডাব্লুপিএফ, কনসোল, উইন্ডোজ পরিষেবা, ইত্যাদি)
উদাহরণস্বরূপ অনুমান করুন যে আপনি একই নেটওয়ার্ক ডোমেনে (একটি ইন্ট্রানেটের মধ্যে) অন্য ওয়েব অ্যাপ্লিকেশন থেকে ওয়েব API পরিষেবা গ্রাস করবেন, এক্ষেত্রে আপনি এএসপি.নেট দ্বারা সরবরাহিত উইন্ডোজ প্রমাণীকরণের উপর নির্ভর করতে পারেন।
<authentication mode="Windows" />
যদি আপনার পরিষেবাগুলি ইন্টারনেটে প্রকাশিত হয়, তবে আপনাকে প্রতিটি ওয়েব এপিআই সার্ভিসে প্রমাণীকরণযোগ্য টোকেনগুলি পাস করতে হবে।
আরও তথ্যের জন্য, নিম্নলিখিত নিবন্ধগুলিতে একটি লুট নিন: