public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider
{
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
bool isvalidUser = AuthenticateUser(context.UserName, context.Password);// validate my user&password
if (!isvalidUser)
{
context.Rejected();
return;
}
// create identity
var id = new ClaimsIdentity(context.Options.AuthenticationType);
id.AddClaim(new Claim("sub", context.UserName));
id.AddClaim(new Claim("role", "user"));
// create metadata to pass on to refresh token provider
var props = new AuthenticationProperties(new Dictionary<string, string>
{
{ "as:client_id", context.ClientId }
});
var ticket = new AuthenticationTicket(id, props);
context.Validated(ticket);
}
}
लॉग इन समय मैं इस SimpleAuthorizationServerProvider (वेब एपीआई में) का उपयोग कर रहा मैं मिलता है और ग्राहक के लिए पहुँच टोकन भेज सकते हैं सर्वर साइड में अपने कस्टम OAuth2 पहुँच टोकन मान्य कर सकते हैं। फिर लॉग इन उपयोगकर्ता मैं सर्वर साइड में अपने कस्टम OAuth2 पहुँच टोकन मान्य कैसे (वेब एपीआई में) कर सकते हैंमैं कैसे
क्लाइंट की ओर से मैं हूँ, अन्य पृष्ठों का उपयोग करने की जरूरत है इस
private static TokenResponse GetToken()
{
var client = new OAuth2Client(new Uri("http://localhost:1142/token"), "client1", "secret");
var response = client.RequestResourceOwnerPasswordAsync(uid, pwd).Result;
Console.WriteLine(response.AccessToken);
return response;
}
और कॉल की तरह पीढ़ी टोकन प्रमाणीकरण के बाद विशेष वेब एपीआई
private static void CallProfile(string token)
{
var client = new HttpClient();
client.SetBearerToken(token);
var response = client.GetStringAsync(new Uri("http://localhost:1142/api/Profile?id=1")).Result;
}
बस यहाँ मेरी टोपी से बाहर है, लेकिन अगर वाहक टोकन प्राधिकरण शीर्षक में वापस तो एक साधारण कॉल पारित हो जाता है बात कर उपयोगकर्ता के लिए। आईडी। प्रमाणीकृत आपको बताएगा कि टोकन मान्य है या नहीं। – Mark
@ मार्क - हालांकि, यह तब हो सकता है जब विधि अजाक्स अनुरोध के माध्यम से बुलाया जाता है और कोई उपयोगकर्ता नहीं है। अनुरोध से जुड़ी संस्था? – Catchops
@Catchops आप अनुरोध में अपना टोकन पास करना होगा प्राधिकरण शीर्षलेख (उदा। प्राधिकरण: Bearer YOUR_TOKEN) जब आप AJAX अनुरोध करते हैं। – Mark