9

मेरे पास एकीकृत सुरक्षा का उपयोग कर एक एएसपी.NET एमवीसी ऐप है जिसे मुझे किसी विशिष्ट मार्ग पर खुली पहुंच प्रदान करने में सक्षम होना चाहिए। प्रश्न में मार्ग ~/Agreements/Upload है। मैंने कुछ चीजों की कोशिश की है और अब तक कुछ भी काम नहीं किया है।मैं एकीकृत उपयोगकर्ताओं के साथ एक वेबसाइट के भीतर सभी उपयोगकर्ताओं को एक मार्ग तक पहुंचने की अनुमति कैसे दूं?

<configuration> 
    <location path="~/Agreements/Upload"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 

निर्देशिका सुरक्षा> प्रमाणीकरण पद्धतियों के अंतर्गत आईआईएस में मैं केवल "एकीकृत विंडोज प्रमाणीकरण" चयनित है। अब, यह मेरी समस्या का हिस्सा हो सकता है (भले ही आईआईएस उपरोक्त आईआईएस की अनुमति नहीं देता है)। लेकिन अगर ऐसा है तो मैं इसे कैसे कॉन्फ़िगर कर सकता हूं ताकि एकीकृत सुरक्षा काम करे लेकिन उन लोगों को अनुमति दें जो दिए गए मार्ग तक पहुंचने के लिए प्रमाणित नहीं हैं?

+2

डैगर, आप इस तरह अपने एमवीसी ऐप को सुरक्षित नहीं कर सकते हैं। Http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx – RickAndMSFT

+0

देखें @ रिक एंडएमएसएफटी एक धर्मी क्रूसेड पर है। मैंने अपना ब्लॉग पढ़ा और मुझे इस विचार पर बेचा गया कि वह सही है। – MrBoJangles

उत्तर

-1

आपको आईआईएस में अज्ञात पहुंच की अनुमति देने की आवश्यकता है, अन्यथा केवल विंडोज प्रमाणीकृत उपयोगकर्ता ही आपकी साइट पर कहीं भी पहुंच पाएंगे। आपको डिफ़ॉल्ट रूप से अज्ञात उपयोगकर्ताओं तक पहुंच से इनकार करना चाहिए।

<deny users="?"/> 
<allow users="*"/> 

अपने <location> अनुभाग में, अज्ञात उपयोगकर्ताओं को अनुमति दें।

<allow users="?"/> 
+0

जब मैं आईआईएस में अज्ञात पहुंच की अनुमति देता हूं तो मुझे विंडोज एकीकृत सुरक्षा का उपयोग कर लोगों के उपयोगकर्ता नाम को खींचने की क्षमता खो जाती है ... –

+0

आह .. मुश्किल बिट http://msdn.microsoft.com के अनुसार है /en-us/library/wce3kxhd.aspx (एएसपी.नेट प्रमाणीकरण) - "एप्लिकेशन-स्तरीय कॉन्फ़िगरेशन फ़ाइलों में निहित नियम विरासत नियमों पर प्राथमिकता लेते हैं" –

+2

यह उत्तर केवल गलत नहीं है, इसकी खतरनाक है, जैसा कि एक टिप्पणी द्वारा इंगित किया गया है प्रश्न। – Andy

16

एएसपी.नेट एमवीसी में आपको web.config में स्थान तत्व का उपयोग नहीं करना चाहिए। जबकि डिस्क पर भौतिक फाइलों के लिए वेब फॉर्म इंजन मैप किया गया है, रूटिंग का उपयोग कर एमवीसी इंजन। इसका मतलब यह है कि आप अनजाने में दुर्घटना से कस्टम मार्ग के माध्यम से "संरक्षित नियंत्रक" तक पहुंच की अनुमति दे सकते हैं। के रूप में नीचे दिए गए उदाहरण में देखा

ASP.NET MVC अनुप्रयोगों हासिल करने के लिए अनुशंसित तरीका, अधिकृत विशेषता के उपयोग के माध्यम से होता है:

public class HomeController : Controller 
{ 
    [Authorize] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

नियंत्रक कार्रवाई क्या आप की रक्षा करना चाहते हैं और न मार्ग । ASP.NET MVC सुरक्षा बीओडी, लेवी ब्रॉडरिक बल्कि इस मुद्दे के बारे मुखर है:

  1. Excluding an action from authorization in ASP.NET MVC 2
  2. Problem with Authorization with IIS and MVC
+2

एमवीसी 4 संस्करण के लिए http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous देखें -attribute.aspx – RickAndMSFT

+0

@ रिक। एंडरसन-at-Microsoft.com उस अद्यतन के लिए धन्यवाद। लेख दिलचस्प है। अज्ञात पहुंच नियंत्रक और/या नियंत्रक कार्रवाई को हल करने के लिए हमने एमवीसी 3 में कुछ समान ही लागू किया। – Junto

संबंधित मुद्दे

 संबंधित मुद्दे