членство в asp.net - PullRequest
       25

членство в asp.net

1 голос
/ 11 июля 2011

Я пишу приложение MVC, используя ASP.Net Membership для безопасности. Приложение позволит запускать несколько веб-сайтов из одного приложения и базы данных.

Сайты, работающие в приложении, будут полностью независимы друг от друга. Пользователи этих сайтов будут иметь доступ только к своему сайту.

Если я использую один web.config, одно приложение MVC и одну базу данных, могу ли я обеспечить безопасность для конкретного сайта с помощью членства в ASP.NET?

Предположительно, у меня будет только один ключ приложения, поэтому я не смогу использовать его для разграничения сайтов. Я думал об использовании Roles , но буду подвергать роли администраторов сайта - и не хочу, чтобы администраторы добавляли / настраивали роли для другого сайта для своих собственных пользователей.

Эта потенциальная проблема только что возникла у меня, поэтому любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 11 июля 2011

Существует свойство ApplicationName , которое поставщик ролей использует для фильтрации ролей. Попробуйте установить это свойство перед извлечением ролей.

Как-то так должно работать:

Roles.ApplicationName = "MyAppName";
var authorized = Roles.IsUserInRole("Some.user", "admin");

Я не пробовал это, это статическое свойство, которое может дать вам странные результаты, поэтому будьте осторожны. Лучший способ сделать это - реализовать собственного провайдера, чтобы вы могли сделать что-то вроде Roles.IsUserInRole("some.user","admin","MyAppName").

0 голосов
/ 11 июля 2011

Вы можете использовать их как под-сайты основного сайта (с настройкой web.config там), и, следовательно, аутентификация проникает через под-сайты.

...