TweetHarbor.Controllers.AccountController.Authorize C# (CSharp) Метод

Authorize() публичный Метод

public Authorize ( string Client ) : System.Web.Mvc.ActionResult
Client string
Результат System.Web.Mvc.ActionResult
        public ActionResult Authorize(string Client)
        {
            User dbUser = null;
            if (Request.IsAuthenticated)
            {
                dbUser = database.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
            }

            Client = Client ?? "";

            string returnUrl = Request["ReturnUrl"] != null ? "&ReturnUrl=" + Request["ReturnUrl"] : "";
            string redirect = Request.Url.Scheme + "://" +
                Request.Url.Host +
                (Request.Url.Host == "localhost" ? ":" + Request.Url.Port : "") + "/Account/OAuthComplete/"
                + (dbUser != null ? dbUser.UniqueId : "")
                + "?Client=" + Client + "" + returnUrl;

            return Redirect(Clients[Client.ToLower()].GetAuthenticationEndpoint(redirect).AbsoluteUri);
        }

Usage Example

        public void AuthorizeAppHarbor_TestAuthorizeReturnsCorretRedirectResult()
        {
            var db = new TestTweetHarborDbContext();
            var ts = new Mock<ITweetHarborTwitterService>();
            var auth = new Mock<IFormsAuthenticationWrapper>();

            var c = new AccountController(db, ts.Object, auth.Object);
            c.SetFakeControllerContext();
            var authResponse = c.Authorize("appharbor");

            Assert.IsInstanceOfType(authResponse, typeof(RedirectResult));
            RedirectResult redirRes = (authResponse as RedirectResult);

            var data = HttpUtility.ParseQueryString(redirRes.Url.ToString().Substring(redirRes.Url.ToString().IndexOf('?')));
            Assert.AreNotEqual(0, data.Count, "No query string parameters found");
            Assert.AreNotEqual(0, data["redirect_uri"].Length, "redirect_uri not found in url");

            var data2 = HttpUtility.ParseQueryString(new Uri(data["redirect_uri"]).Query);

            Assert.IsTrue(data2.Keys[0].ToLower() == "client");
            Assert.IsTrue(data2["client"].ToLower() == "appharbor");
        }
All Usage Examples Of TweetHarbor.Controllers.AccountController::Authorize