asp.net - एएसपी.नेट एमवीसी 5 में प्रमाणीकरण और प्रमाणीकरण




claims-based-identity asp.net-identity (2)

Asp.net एमवीसी 5 को AuthorizeAttribute क्लास का उपयोग करके पीछे छोड़ दिया गया है, जहां आप AuthorizeAttribute क्लास को कार्यान्वित करके एक कस्टम प्राधिकृत विशेषता बना सकते हैं, इसकी विधियों को ओवरराइड कर सकते हैं और साइटरोल प्रॉपर्टी को छुपा सकते हैं, जिससे आप अपनी भूमिकाओं में सेंकना चाहते हैं। मैंने देखा है कि सभी उदाहरण ओविन या पहचान ढांचे का उपयोग करने का सुझाव देते हैं। क्या ये नए एएसपी.Net ढांचे में प्रमाणीकरण और प्रमाणीकरण करने के लिए केवल दो तरीके हैं? अगर मैं इसे पुराने तरीके से करता हूं तो क्या मैं कुछ भी याद करूँगा? मैं फ्रेमवर्क नहीं चाहता हूं कि मेरे लिए सभी उपयोगकर्ता और रोल टेबल बनाएं। क्या होगा यदि मैं एक मौजूदा उपयोगकर्ता और भूमिका तालिका को नए एप्लिकेशन में जोड़ना चाहता हूं?

मुझे वास्तव में अभी भी हर एप्लिकेशन में सामाजिक एकीकरण की आवश्यकता नहीं दिख रही है और मुझे नहीं लगता कि मुझे तुरंत इसकी आवश्यकता होगी। क्या कोई ऐसा आलेख है जो एक कस्टम प्राधिकृत विशेषता का उपयोग करके न्यूनतम से शुरू करने के बारे में बताता है और फिर नई प्रमाणीकरण सुविधाओं को जोड़ने के लिए आगे बढ़ता है। मुझे ऐसा कुछ चाहिए जो मूल रूप से नव निर्मित प्रोजेक्ट में सभी अव्यवस्था को समझाए, जिसमें कोई प्रमाणीकरण या व्यक्तिगत उपयोगकर्ता प्रमाणीकरण चयनित नहीं है।


आप अभी भी ASP.NET पहचान का उपयोग कर एमवीसी 5 में AuthorizeAttribute को कस्टमाइज़ कर सकते हैं। सरल सुरक्षा परियोजना में ऐसा करने का एक उदाहरण है। यहां एक अनुकूलित प्राधिकृत एट्रिब्यूट है जिसे आप नियंत्रकों के लिए उपयोग कर सकते हैं और यहां अनुकूलित प्राधिकृत एट्रिब्यूट है जिसे आप वेब एपीआई के लिए उपयोग कर सकते हैं । इन कस्टम AuthorizeAttributes के पीछे की अवधारणा आपके सुरक्षा मॉडल को आपके एप्लिकेशन मॉडल से कम करने के लिए है जिस पर चर्चा की गई है । वेब एपीआई के लिए एक बुनियादी प्रमाणीकरण का भी समर्थन करता है

ओविइन की शुरूआत के साथ सुरक्षा पाइपलाइन बदल गई है और मैंने वेब एपीआई के लिए AuthorizeAttribute के व्यवहार के साथ कुछ मुद्दों में भाग लिया है, जिस पर चर्चा की गई है

आपको सरल सदस्यता प्रदाता में एमवीसी 5 के लिए सरल सदस्यता प्रदाता के पोर्टिंग पर सरल सुरक्षा परियोजना में उदाहरण भी मिलेंगे । अपग्रेड प्रक्रिया के कुछ मुद्दों पर चर्चा की गई है । मैं इसे काम करने के लिए मिला हालांकि आप पुराने सदस्यता प्रदाता कार्यान्वयन के साथ जा सकते हैं। लेकिन मेरी सिफारिश एएसपी.NET पहचान के साथ जाना होगा क्योंकि यह आगे बढ़ने का तरीका है कि माइक्रोसॉफ्ट का समर्थन होगा, यह एक अधिक लचीला वास्तुकला है, और यह पुराने सदस्यता प्रदाता कार्यान्वयन में पाए गए कई मुद्दों को समाप्त करता है।


बेन फोस्टर की एक दो-भाग श्रृंखला है जो आपको ग्राउंड अप से एएसपी.NET पहचान के साथ कुकी-आधारित प्रमाणीकरण को लागू करने के चरणों के माध्यम से ले जाती है, बिना किसी प्रमाणीकरण के एक नए वेब ऐप से शुरू होता है। "एएसपी.नेट पहचान स्ट्रिपेड बेयर" भाग 1 और भाग 2 के साथ पालन करें।

उपयोगकर्ता पहले ही प्रमाणित होने पर अनधिकृत पहुंच को संभालने के लिए निम्न प्राधिकृत विशेषता का उपयोग करें।

public class LoggedOrAuthorizedAttribute : AuthorizeAttribute 
{ 
   public LoggedOrAuthorizedAttribute() 
    { 
       View = "error"; 
       Master = String.Empty; 
    } 

    public String View { get; set; } 
    public String Master { get; set; } 

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
  base.OnAuthorization(filterContext); 
  CheckIfUserIsAuthenticated(filterContext); 
} 

   private void CheckIfUserIsAuthenticated(AuthorizationContext filterContext) 
{ 
   // If Result is null, we’re OK: the user is authenticated and authorized. 
   if (filterContext.Result == null) 
      return; 

   // If here, you’re getting an HTTP 401 status code. In particular,
   // filterContext.Result is of HttpUnauthorizedResult type. Check Ajax      here. 
   if (filterContext.HttpContext.User.Identity.IsAuthenticated) 
    { 
      if (String.IsNullOrEmpty(View)) 
         return; 
      var result = new ViewResult {ViewName = View, MasterName = Master}; 
      filterContext.Result = result; 
   } 
 }
}




.net-4.5