Привет всем, Я внедрил свою собственную систему регистрации и входа в приложение для блогов, которое я писал. Я использовал первый подход к базе данных и создал несколько таблиц (dbo.UserProfiles - содержащую пользовательскую информацию) и другие таблицы, с которых я сгенерировал модель данных сущности. Однако я дошел до стадии, когда мне нужно было создать панель администратора, а затем я понял, что мне нужен способ связать каждого пользователя с определенной ролью (Модератор, администратор, гость) и ограничить доступ к определенным страницам на основе этих ролей. Мой вопрос в том, как я могу реализовать поставщик роли в существующей базе данных, так как я не использовал систему членства asp.net mvc по умолчанию, а также могу использовать роли для разрешения или ограничения доступа к определенным страницам на моем веб-сайте.Добавление ролей в существующий веб-сайт asp.net mvc
ответ
Вы можете создать свой собственный провайдер членства, наследуя его от класса MembershipProvider. В MSDN есть отличный пример того, как это сделать.
http://msdn.microsoft.com/en-us/library/44w5aswa(v=vs.100).aspx
Вы также должны implment на роль поставщика.
http://msdn.microsoft.com/en-us/library/tksy7hd7(v=vs.100).aspx
Я уже создал систему членства и ive ушел далеко с приложением, которое я не могу выбросить из системы членства и начать реализацию стандартного, предоставленного asp.net mvc. Мне нужен способ добавить поставщика роли в существующую базу данных и синхронизировать его с существующей пользовательской системой членства, которую я создал. – ibnhamza
Если вы следуете примерам, найденным в MSDN, которые я опубликовал, вы можете создать пользовательский поставщик членства, который будет делать то, что вы хотите. – nerdybeardo
вы можете создать свой собственный основной и идентичность. Внедрите метод IsInRole. Аутентифицируйте свой запрос в методе global.asax Application_AuthenticateRequest. А затем добавьте [Authorize(Roles = "Admin")]
атрибут к указанным действиям.
, что я думаю, это путь, только проблема в том, что я новичок в этой технологии, и я не знаю, как это сделать. можете ли вы помочь с некоторым кодом? – ibnhamza
В следующем примере показано, как указать, что контроллер доступен только пользователям в ролях «Администраторы».
[Authorize(Roles="Administrators")]
public class AdminController : Controller
{
. . .
}
В следующем примере показано, как ограничить доступ к действию внутри контроллера только указанному списку ролей.
[Authorize(Roles="Moderators,Administrator")]
public List<myObject> GetRestrictedData()
{
. . .
}
В следующем примере показано, как ограничить доступ к контроллеру только указанным пользователям.
[Authorize(Users="Jhon,Games")]
public class RestrictedContentController : Controller
{
. . .
}
Я использовал первый метод выше, и я получил сообщение об ошибке «произошла связанная с сетью или конкретная ошибка экземпляра». Я смущен, потому что это только началось, когда я добавил эти две таблицы и обновил мою модель. поскольку другие страницы приложения, требующие подключения к базе данных, работают нормально, без каких-либо проблем. только страница, которую я добавил [Authorize (Roles = "Admin")] вызывает эту ошибку. – ibnhamza
Извините, я понятия не имею, но я рекомендую вам просмотреть шаги, которые вы сделали после добавления новых таблиц (ролей, userRoles), таких как создание edmk и связанных с ними контроллеров и представлений и т. Д., Также проверьте [этот вопрос SO] (http: // stackoverflow. ком/вопросы/21996191/как к регистрации по прибытию пользователя-роли-в-Mvc-5-идентичности) – Gouda
- 1. Добавление пользовательских ролей ролей окна в ASP.NET MVC 5
- 2. Динамическое добавление ролей поставщику ролей asp.net
- 3. Пространство имён в asp.net вебсайт
- 4. Asp.net C# Добавление ролей пользователя
- 5. Добавление selfhosted Asp.NET MVC 5 в существующий проект winforms/console
- 6. создать аутентификацию ролей в asp.net mvc 5
- 7. Удаление ролей в ASP.NET MVC 5
- 8. Получить список ролей в ASP.NET MVC
- 9. Нестроковые имена ролей в ASP.NET MVC?
- 10. динамического отображения ролей контроллеров в ASP.Net MVC
- 11. пакет метеорных ролей, добавление ролей
- 12. Добавление Ninject.MVC3 в существующий проект MVC (4)
- 13. ASP.net MVC: Получение необходимых ролей для входа?
- 14. Поставщики ролей ASP.NET MVC для MySQL
- 15. ASP.Net MVC SimpleMembershipProvider и использование ролей
- 16. Аутентификация на основе ролей asp.net mvc
- 17. ASP.NET MVC - меню для разных ролей
- 18. Включение функций MVC в существующий проект ASP.net
- 19. ASP.NET MVC - Добавление данных в файл загрузки
- 20. Добавление ролей в пользовательском представлении ASP Identity MVC
- 21. SimpleMembership WebForms Asp.net 4.0 ролей
- 22. Сравнение ролей в MVC
- 23. Asp.Net MVC Добавление таблицы
- 24. Использования ролей в ASP.NET
- 25. ASP.net MVC + ASP.net Идентичность Посев ролей и пользователей
- 26. asp.net-mvc и webforms уже существующий
- 27. asp.net-mvc и webforms уже существующий
- 28. Группировка ролей в пользовательском поставщике членства в ASP.Net MVC 2
- 29. Добавление ролей в MobileServices в Azure (ACS)
- 30. Добавление ролей Identity 2.0 в пользовательский идентификатор
У вас есть еще одна таблица для ролей и третью таблицу для определения пользовательских ролей? – Gouda
@mGouda да, я создал таблицу с именем dbo.roles с столбцом roleId и roleName, а также таблицу с именем dbo.UsersInRoles с столбцами roleId и UserId и задал отношение внешнего ключа. После этого я нажал на дизайнере edmx и обновил существующую модель, чтобы добавить новые добавленные таблицы. Затем я создал новый контроллер под названием adminController, который добавил атрибут [Authorize (Role = "Admin")]. После перехода на эту страницу я получил сообщение об ошибке «Связанная с сетью или конкретная ошибка экземпляра при установлении соединения с сервером sql. – ibnhamza
ошибка, о которой вы говорите, здесь не имеет ничего общего с исходным вопросом, эта ошибка указывает, что вы не можете подключиться к базе данных sql-сервера, дважды проверьте connectionstring и связанные с ней вещи – Gouda