Управление ролями в ASP MVC 5 (Microsoft.AspNet.Identity)
в ASP MVC5 RC я не получил систему ролей для работы. В моей базе данных есть все таблицы потребностей, роль существует, но проверка, если пользователь в роли, всегда возвращает false (без исключения SQL или что-то в этом роде!
Нужно ли активировать систему ролей дляIPrincipal
где-то?
Тестовый код:
AccountController accCont = new AccountController();
// check role exist : result = true
var roleExist = await accCont.IdentityManager.Roles.RoleExistsAsync("61c84919-72e2-4114-9520-83a3e5f09de1");
// try find role by name : result = role object
var role = await accCont.IdentityManager.Roles.FindRoleByNameAsync("ProjectAdministrator");
// check with AccountController instance : result = true
var exist = await accCont.IdentityManager.Roles.IsUserInRoleAsync(User.Identity.GetUserId(), role.Id);
// check if current user is in role : result (both) = false????
var inRole = User.IsInRole(role.Id);
var inRole2 = User.IsInRole(role.Name);
Я также пытаюсь создать собственное расширение какIIdentity.GetUserId()
метод расширения изMicrosoft.AspNet.Identity.Owin
Пространство имен.
namespace Microsoft.AspNet.Identity
{
public static class IdentityExtensions
{
public static string IsUserInRole(this IIdentity identity)
{
if (identity == null)
{
throw new ArgumentNullException("identity");
}
ClaimsIdentity identity2 = identity as ClaimsIdentity;
if (identity2 != null)
{
var result = identity2.FindFirstValue(IdentityConfig.Settings.GetAuthenticationOptions().RoleClaimType);
return null; // later result
}
return null;
}
}
}
Но результат для претензии типаRoleClaimType
является всегдаnull
Я действительно застрял с этим.
Спасибо за помощь! Штеффен