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));
        }