从数据库中检索用户信息并同时具有身份声明
从数据库中检索用户信息并同时具有身份声明
我必须承认,我对MVC是个新手..所以现在一切都像是黑魔法一样。
这是代码:
public ActionResult LogIn(Models.profile profile) { if (ModelState.IsValid) { if(IsValid(profile.profile_email, profile.profile_password)) { var db = new DatabaseContext(); var _id = db.profile.Where(u => u.profile_email == profile.profile_email).Select(n => n.profile_id).FirstOrDefault(); var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Email, profile.profile_email), new Claim(ClaimTypes.Name, _id.ToString())}, "ApplicationCookie"); var ctx = Request.GetOwinContext(); var authmngr = ctx.Authentication; authmngr.SignIn(identity); return RedirectToAction("LogIn", "Main"); } else { ModelState.AddModelError("", "出了些问题"); } } return View(profile); }
我设法使用身份验证登录,这真的很难 @_ @
问题是,从我所见,这些claimtype并不是太灵活。
我的意思是,我必须从列表中选择一些东西,然后我只是选择了自己的属性或其他什么东西。
所以,我决定将当前用户ID存储在`ClaimTypes.Name`中。不确定这是否是一个好主意。我甚至不确定整个登录模式是否可行 ;o
但是...重点是,如果这个claim中没有用户ID,我如何仅通过这个claim检索用户信息?或者我如何在使用claims identity时从数据库中检索用户信息?
如果有任何需要添加的内容,请告诉我 ;3