public ActionResult LogOnPostAssertion(string openid_openidAuthData) { IAuthenticationResponse response; if (!string.IsNullOrEmpty(openid_openidAuthData)) { var auth = new Uri(openid_openidAuthData); var headers = new WebHeaderCollection(); foreach (string header in Request.Headers) { headers[header] = Request.Headers[header]; } // Always say it's a GET since the payload is all in the URL, even the large ones. HttpRequestInfo clientResponseInfo = new HttpRequestInfo("GET", auth, auth.PathAndQuery, headers, null); response = RelyingParty.GetResponse(clientResponseInfo); } else { response = RelyingParty.GetResponse(); } if (response != null) { switch (response.Status) { case AuthenticationStatus.Authenticated: string alias = response.FriendlyIdentifierForDisplay; var sreg = response.GetExtension<ClaimsResponse>(); if (sreg != null && sreg.MailAddress != null) { alias = sreg.MailAddress.User; } if (sreg != null && !string.IsNullOrEmpty(sreg.FullName)) { alias = sreg.FullName; } var userId = new MembershipReadModel().GetUserIdByUserName(alias); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, //version response.ClaimedIdentifier, // user name DateTime.Now, //creation DateTime.Now.AddMinutes(30), //Expiration false, //Persistent string.Join("|", alias, userId)); string encTicket = FormsAuthentication.Encrypt(authTicket); this.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); string returnUrl = Request.Form["returnUrl"]; if (!String.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } case AuthenticationStatus.Canceled: ModelState.AddModelError("OpenID", "It looks like you canceled login at your OpenID Provider."); break; case AuthenticationStatus.Failed: ModelState.AddModelError("OpenID", response.Exception.Message); break; } } // If we're to this point, login didn't complete successfully. // Show the LogOn view again to show the user any errors and // give another chance to complete login. return View("LogOn"); }
public void ConstructorSetsProperties() { // Arrange IFormsAuthentication formsAuth = new MockFormsAuthenticationService(); var membershipReadModel = new MembershipReadModel(); // Act var controller = new AccountController(formsAuth, new CommandServiceClient(), membershipReadModel); // Assert Assert.AreEqual(formsAuth, controller.FormsAuth, "FormsAuth property did not match."); Assert.AreEqual(membershipReadModel, controller.MembershipReadModel, "MembershipReadModel property did not match."); }