public string GetAuthorizationCode(AuthorizationRequest request) { string code = Guid.NewGuid().ToString("N"); if (!requests.ContainsKey(code)) { lock (requests) { requests.Add(code, request); } return code; } else { return string.Empty; } }
// GET: /OAuth2/authorize public ActionResult authorize() { //string response_type = "code"; string client_id = Request.Params.Get("client_id"); string redirect_uri = Request.Params.Get("redirect_uri"); string scope = Request.Params.Get("scope"); string state = Request.Params.Get("state"); AuthorizationRequest request = new AuthorizationRequest() { ClientIdentifier = client_id, Scope = scope, RedirectURI = redirect_uri }; string code = OAuthService.Invoke<string>(o => o.GetAuthorizationCode(request)); return Redirect(string.Format("{0}?code={1}&state={2}", redirect_uri, code, state)); }