コード例 #1
0
        public async Task <ActionResult> QQLogin(NewUserViewModel viewModel)
        {
            var owinContext = Request.GetOwinContext();
            var identity    = await owinContext.Environment.GetIdentityServerPartialLoginAsync();

            if (identity == null || identity.IsAuthenticated == false)
            {
                return(new HttpUnauthorizedResult());
            }

            var qqConnectProfile = new QQConncetProfile(identity.Claims);

            var newUser = new InMemoryUser
            {
                Username   = viewModel.UserName ?? "Default Name",
                Subject    = Guid.NewGuid().ToString(),
                Enabled    = true,
                Provider   = qqConnectProfile.Idp,
                ProviderId = qqConnectProfile.OpenId,
                Claims     = new[]
                {
                    new Claim(Constants.ClaimTypes.NickName, qqConnectProfile.NickName),
                    new Claim(Constants.ClaimTypes.Picture, qqConnectProfile.AvatarUrl),
                }
            };

            Users.All.Add(newUser);

            var resumeUrl = await owinContext.Environment.GetPartialLoginResumeUrlAsync();

            return(Redirect(resumeUrl));
        }
コード例 #2
0
        public async Task <ActionResult> QQLogin()
        {
            var owinContext = Request.GetOwinContext();
            var identity    = await owinContext.Environment.GetIdentityServerPartialLoginAsync();

            if (identity == null || identity.IsAuthenticated == false)
            {
                return(new HttpUnauthorizedResult());
            }

            var qqConnectProfile = new QQConncetProfile(identity.Claims);

            return(View(new NewUserViewModel
            {
                UserName = qqConnectProfile.NickName,
                AvatarUrl = qqConnectProfile.AvatarUrl
            }));
        }