Я создал собственный поставщик роли. Прежде чем я обновил свои пакеты VS и NuGet, все, казалось, сработало. Однако, когда я вхожу в систему сейчас, похоже, что страницы обновляются (или View перезагружается по крайней мере). Я вижу, что cookie создан, но я не буду перенаправлять на Index. Зачем?Поставщик пользовательской роли не работает - мгновенное перенаправление на страницу входа в систему после входа в систему
В моей Web.Config:
<authentication mode="Forms">
<forms loginUrl="~/Home/Login" timeout="2880" />
</authentication>
<roleManager defaultProvider="MyRoleProvider">
<providers>
<add name="MyRoleProvider" type="project.Authorisation.CustomRoleProvider" />
<remove name="MySQLRoleProvider" />
<add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</roleManager>
В моей HomeController:
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(User user)
{
if (ModelState.IsValid)
{
bool authenticated = userDBController.isAuthorized(user.Nickname, user.Password);
if (authenticated)
{
FormsAuthentication.SetAuthCookie(user.Nickname, false);
return Redirect(Url.Action("Index", "Home"));
}
else
{
ViewBag.Message = "Inlog data is incorrect!";
return View();
}
}
else
{
return View();
}
}
[Authorize(Roles = "ADMIN")]
public ActionResult Index()
{
return View();
}
Так что, когда я вошел в я не могу перейти на главную/Index, он будет перенаправлять меня Вход в любом случае. . То же самое для после входа в
Мой заказ RoleProvider довольно просто прямо сейчас:
public class CustomRoleProvider : RoleProvider
{
private MainController mainController = MainController.Instance;
private UserDBController userDBController = MainController.Instance.GetUserDBController();
public override string[] GetRolesForUser(string username)
{
return userDBController.getRollen(username);
}
Прежде всего, это все работало (и разрешения).
Убедитесь, что подключенный пользователь имеет роль администратора. – CodeNotFound
Пользователь, с которым я вхожу в систему, имеет роль администратора. Однако, если я поставил точку останова в функции GetRoleForUser, она не попадет туда. – Kraishan