Добавить персонализированные типы заявок
Новая проверка подлинности OWIN и затруднение для создания моих собственных типов претензий owin.
Вот что. Мне нужно добавить пользовательские претензии, такие как "GroupID", чтобы я мог легко получить доступ к ним на разных страницах.
Я сделал что-то подобное в моем Login
public ActionResult Login(LoginViewModel model, string returnUrl)
{
UserViewModel userModel = new UserViewModel();
if (!ModelState.IsValid)
{
return View(model);
}
if(CommonHelper.ValidateADUser(model.Username,model.Password))
{
UserViewModel curUser = userModel.GetUserDetails(model.Username);
if (curUser != null)
{
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.WindowsAccountName, curUser.Username));
claims.Add(new Claim(ClaimTypes.Name,curUser.Fullname));
claims.Add(new Claim(ClaimTypes.Role, ""));
claims.Add(new Claim("GroupID", curUser.UserGroupID.ToString()));
var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
AuthenticationManager.SignIn(id);
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "Invalid login attempt.");
}
return View(model);
}
В моей частичной регистрации я попытался получить значение, выполнив это
public ActionResult _LoginPartial()
{
var identity = (ClaimsIdentity)User.Identity;
TempData["curUserFullName"] = identity.FindFirst(ClaimTypes.Name).Value;
string s= identity.FindFirst("GroupID").Value;
return PartialView();
}
Я могу получить имя пользователя и полное имя без проблем, но идентификатор группы вызывает ошибку нулевого объекта.
Надеясь, что кто-то может подтолкнуть меня к правильному ответу.
Ответы
Ответ 1
Как я проверил ваш код, в нем нет проблем.
Здесь я хочу, чтобы вы сделали:
Проверьте, был ли кеш чистым. Если ваш кеш не был очищен, вы можете очистите его так: CTRL + SHIFT + DELETE
Это потому, что во время вашего входа он будет сохранять файлы cookie, и это было не ясно, и бывает, что новое требование не было сохранено в файлах cookie.
Или попробуйте проверить, имеет ли ваш UserGroupID значение.