के साथ एएसपी.NET वेब एपीआई ओविन टोकन आधारित प्रमाणीकरण के साथ मैं वेब एपीआई 2 का उपयोग कर रहा हूं। केवल एक चीज जो काम नहीं कर रही है वह भूमिकाओं पर आधारित प्राधिकरण है।भूमिका आधारित प्राधिकरण
AuthorizationServerProvider.GrantResourceOwnerCredentials की मेरी कार्यान्वयन में यह कैसे मैं भूमिकाएं सौंप है:
identity.AddClaim(client.ApplicationType == ApplicationTypes.WebClient
? new Claim(ClaimTypes.Role, "user")
: new Claim(ClaimTypes.Role, "admin"));
लेकिन नियंत्रक का उपयोग करने में [प्रमाणित (भूमिकाओं = "उपयोगकर्ता")] सिर्फ एक प्राधिकरण से इनकार संदेश ग्राहक के लिए देता है। मैं चर की जाँच की और यह क्या है
अंदर तो भूमिका वहाँ हो रहा है है, लेकिन user.Claims खाली और IsInRole ("उपयोगकर्ता") है भी नकारात्मक देता है।
मुझे यहां स्टैक ओवरफ्लो और तर्क-आधारित पर कई प्रश्न मिले हैं, मुझे नहीं पता कि मुझे क्या याद आया। केवल बात यह है कि मेरे दिमाग में आता अधिकृत कमान अधिलेखन है लेकिन यह कहने की जरूरत नहीं की तरह है के रूप में भूमिका आधारित प्राधिकरण पहले से एकीकृत किया जा रहा है ...
संपादित करें:
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var allowedOrigin = context.OwinContext.Get<string>("as:clientAllowedOrigin") ?? "*";
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
Client client;
using (var repo = new AuthRepository())
{
client = repo.FindClient(context.ClientId);
if (client.ApplicationType != ApplicationTypes.Service)
{
var user = await repo.FindUser(context.UserName, context.Password);
if (user == null)
{
context.SetError("invalid_grant", "The user name or password is incorrect." + context.UserName);
return;
}
}
}
: यह मेरा workig विधि कैसा दिखता है
इस स्थायी है? इसके अलावा इस समाधान के साथ समस्या यह है कि एक विशिष्ट प्रकार के क्लाइंट के लिए मुझे उपयोगकर्ता की आवश्यकता नहीं होती है और यदि संभव हो तो सीधे संदर्भ में भूमिका जोड़ना चाहती है – dnanon
कृपया मेरे संपादन की जांच करें, उम्मीद है कि यह सहायक होगा – Vi100
हाय @ डेनॉन समाधान आपके लिए काम किया? मुझे एक ही समस्या है, क्या आप कृपया मुझे अपनी GrantResourceOwnerCredentials विधि साझा कर सकते हैं? धन्यवाद! –