WorldDomination.Security.UserData.ToClaims C# (CSharp) Method

ToClaims() public method

Convert to the UserData into a list of Claims.
public ToClaims ( ) : IEnumerable
return IEnumerable
        public IEnumerable<Claim> ToClaims()
        {
            var claims = new List<Claim>();
            
            if (!string.IsNullOrEmpty(UserId))
            {
                claims.Add(new Claim(ClaimTypes.Uri, UserId));
            }

            if (!string.IsNullOrEmpty(DisplayName))
            {
                claims.Add(new Claim(ClaimTypes.NameIdentifier, DisplayName));
            }
            
            if (!string.IsNullOrEmpty(DisplayName))
            {
                claims.Add(new Claim(ClaimTypes.Name, DisplayName));
            }

            if (!string.IsNullOrEmpty(PictureUri))
            {
                claims.Add(new Claim(CustomClaimsTypes.PictureUri, PictureUri));
            }

            return claims;
        }

Usage Example

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