/// <summary> /// Quickly generate a fake Claims Principal. /// </summary> /// <remarks>This is mainly for unit tests.</remarks> /// <param name="userData">Optional: some user data. Otherwise, some default fake data is created.</param> /// <returns>ClaimsPrincipal with either the provided UserData or some default UserData.</returns> public static IPrincipal FakeClaimsPrincipal(UserData userData = null) { if (userData == null) { userData = new UserData { DisplayName = "Leah.Culver", PictureUri = "http://i.imgur.com/hVuuJ.png", UserId = "users/1" }; } var identity = new ClaimsIdentity(userData.ToClaims(), "Forms"); return new ClaimsPrincipal(identity); }
// Reference: http://nerddinnerbook.s3.amazonaws.com/Part12.htm // Yes .. Nerd Dinner to the rescue! and we come full circle... public static void SetUpControllerContext(ControllerBase controller, string userId = null, string displayName = null) { Condition.Requires(controller); // Some fake Authentication stuff. // TODO: Replace with CLAIMS. var userData = new UserData { UserId = userId, DisplayName = displayName }; var customIdentity = new ClaimsIdentity(userData.ToClaims(), "Forms"); var customPrincipal = new ClaimsPrincipal(customIdentity); var mockControllerContext = new Mock<ControllerContext>(); mockControllerContext.Setup(x => x.HttpContext.User).Returns(customPrincipal); controller.ControllerContext = mockControllerContext.Object; }
public ActionResult Authenticate() { var userData = new UserData { UserId = "users/1", DisplayName = "Leah Culver", PictureUri = "/Content/LeahCulverAvatar.png" }; _customFormsAuthentication.SignIn(userData); return RedirectToAction("Index", "Home", new { area = "" }); }