पर कस्टम भूमिकाएं जोड़ना मेरे पास कुछ नियंत्रकों के साथ एक .NET Azure मोबाइल सेवा प्रोजेक्ट है जो मैं विशिष्ट प्राधिकृत विशेषता के साथ सुरक्षित करना चाहता हूं। मैं एक भूमिका तालिका और उपयोगकर्ता प्रोफाइल तालिका बना सकता हूं और Google, फेसबुक, आदि के माध्यम से प्रमाणित विभिन्न उपयोगकर्ताओं को अपनी भूमिका तालिका में भूमिकाओं के साथ जोड़ सकता हूं।Azure मोबाइल सेवा उपयोगकर्ता (Google, ट्विटर, फेसबुक, माइक्रोसॉफ्ट)
मेरा प्रश्न है: प्रमाणीकरण पूर्ण होने के बाद रोलर्स को सर्विसयूसर का दावा कैसे किया जाता है लेकिन प्राधिकरण फ़िल्टर की ऑनअधिकृत विधि से पहले चलता है? क्या यह भी संभव है?
मुझे क्या करना चाहते हैं का उदाहरण:
[Authorize(Roles = "admin")]
public async Task<IHttpActionResult> Put(int id, MyDto dto){...}
असहज तालिका उदाहरण:
Roles
id | name
1 | user
2 | admin
UserProfiles
id | externalLoginId | favoriteColor
1 | Google:<ServiceUser.Id> | blue
UserRoles (Linking Table)
roleId | userId
2 | 1
संपादित करें:
एक विकल्प अपने ही कार्रवाई फिल्टर अधिकृत फिल्टर अधिभावी बनाने के लिए हो सकता है विशेषता और ऑनअधिकृत विधि में मैं वर्तमान उपयोगकर्ता के लिए भूमिका प्राप्त करने के लिए UserProfiles और Roles टेबल से पूछताछ कर सकता हूं, फिर प्राधिकृत में निर्दिष्ट भूमिकाओं के विरुद्ध जांचें ऑब्जेक्ट की भूमिका संपत्ति यह निर्धारित करने के लिए कि उपयोगकर्ता के पास पहुंच है या नहीं। लेकिन किसी भी तरह, ऐसा लगता है कि पाइपलाइन में पहले एक जगह होनी चाहिए जिसे मैं वर्तमान उपयोगकर्ता को भूमिकाओं के दावों को जोड़ने के लिए रोक सकता हूं।
यह मुझे कल पूरे दिन ले लिया है, लेकिन मैं अंत में समाधान पर पहुंचे नीचे। मैंने कस्टम ओविन मिडलवेयर से कस्टम लॉगिनप्रोवाइडर्स तक सब कुछ करने की कोशिश की और मुझे कोई भी नहीं मिला जो मैं चाहता था। मैं अपना खुद का कस्टम प्राधिकरण एट्रिब्यूट बना सकता था, लेकिन मैंने सोचा था कि पाइपलाइन में पहले एक जगह होनी चाहिए जहां मैं केवल भूमिका दावों को जोड़ सकता हूं और केवल सामान्य AuthorizeAttribute [प्राधिकरण (भूमिकाएं = "उपयोगकर्ता, व्यवस्थापक")]। नीचे दिया गया समाधान उस लक्ष्य को पूरा करता है। लेकिन अब मैं माइक्रोसॉफ्ट के आंतरिक कामकाज के बारे में और अधिक जानता हूं। WindowsAzure। * असेंबली जो मैं कभी चाहता था। :) –