У меня возникли проблемы с пониманием того, как механизм роли работает с ASP.NET.Назначить роль пользователю при каждом входе на страницу входа в FormAuthentication в ASP.NET?
У меня есть база данных Microsoft SQL Server, где все уже настроено, и я не хочу добавлять/удалять/изменять таблицы. В таблице «Пользователи» есть поле, в котором указывается «Роль» пользователя по идентификатору, ссылающемуся на запись в таблице «Типы». Я хочу использовать это поле, чтобы различать пользователей по их типам (который может быть администратором, премиум или стандартным, например).
Невозможно ли назначить роль пользователю каждый раз, когда он подключается?
Я имею в виду что-то вроде этого в Login.aspx.cs:
protected void btn_login_Click(object sender, EventArgs e)
{
// On authentifie l'utilisateur via la BLL
BusinessLogicLayer bll = new BusinessLogicLayer();
Utilisateur user = bll.authenticate(txt_login.Text, txt_password.Text);
// SUCCEEDED AUTH
if (user != null)
{
// Ajout de l'utilisateur à son role correspondant
if (user.Type1.nom == "lecteur")
Roles.AddUserToRole(user.login, "lecteur");
else if (user.Type1.nom == "journaliste")
Roles.AddUserToRole(user.login, "journaliste");
else if (user.Type1.nom == "administrateur")
Roles.AddUserToRole(user.login, "administrateur");
FormsAuthentication.RedirectFromLoginPage(user.login, cb_remember.Checked);
}
// FAILED AUTH (si on arrive jusqu'ici vu qu'on a pas été redirigé)
else
lbl_invalidCredentials.Visible = true;
}
Я уже прочитал учебник на веб-сайте ASP.NET, но он использует специфическую конфигурацию базы данных, которую я не могу реализовать.
Это звучит, как ваши "роли" механизм не совместим с установкой роли поставщика ASP.NET , (Для каждого пользователя требуется ровно одна роль, в то время как обычно ASP.NET позволяет использовать для многих-многих пользователей к ролям.) Вы можете попытаться написать собственный поставщик роли, но вы не сможете выполнить весь интерфейс , – David
Пользовательский поставщик роликов звучит как путь наименьшего сопротивления здесь - http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx –
Внедрение настраиваемого ролевого провайдера кажется слишком тяжелым для моего базового веб-сайта ASP.NET , Я думаю, что я собираюсь перейти к более простой опции: не использовать роли и проверять код на каждой странице, если пользователь является администратором или нет. – gilgha