36

एमवीसी कोर में सभी कार्यों के लिए वैश्विक प्रमाणीकरण को कैसे बल/सेट करें?एमवीसी कोर सभी कार्यों के लिए वैश्विक प्राधिकरण को कैसे बल/स्थापित करने के लिए?

मैं वैश्विक फिल्टर रजिस्टर करने के लिए कैसे जानते हैं - उदाहरण के लिए मेरे पास है:

Setup.cs 

services.AddMvc(options => 
{ 
    options.Filters.Add(new RequireHttpsAttribute()); 
}); 

और इस ठीक काम करता है, लेकिन मैं अधिकृत के लिए ही नहीं जोड़ सकते हैं:

options.Filters.Add(new AuthorizeAttribute());

मुझे त्रुटि है:

Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'

(विधि .Add()IFilterMetadata प्रकार की जरूरत है)


मुझे पता है - इसी तरह के सवाल से - कि इस MVC4-5 पर काम करता है ... तो कुछ MVC कोर पर परिवर्तित करना होगा ...

किसी ने किया है कोई उपाय?

उत्तर

68
services.AddMvc(config => 
{ 
    var policy = new AuthorizationPolicyBuilder() 
        .RequireAuthenticatedUser() 
        .Build(); 
    config.Filters.Add(new AuthorizeFilter(policy)); 
}); 
+0

उत्तर के लिए धन्यवाद :) –

+0

मुझसे पूछते हैं - आपकी राय में - यह अच्छी आदत है है? मुझे आंतरिक उपयोग के लिए वेब ऐप करना है, और मुझे यह सुनिश्चित करने की ज़रूरत है कि जनता के लिए उपलब्ध नहीं है। –

+0

शायद एक और सवाल - क्या उस (वैश्विक) समाधान के प्रदर्शन पर उदाहरण के लिए कोई नकारात्मक प्रभाव हो सकता है (प्रत्येक वर्ग के लिए AuthorizeAttribute का उपयोग करने की तुलना में)? –

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

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