Как не использовать волшебную строку с IsInRole в Silverlight RIA?
Я продлил UserBase
класс в System.ServiceModel.DomainServices.Server.ApplicationServices
в моем Silverlight RIA, и да, люди все еще используют Silverlight, и мне было интересно, что будет лучшим опытом в отношении IsInRole(@"domain\groupName")
и как я могу избежать использования жестко закодированного имени группы?
Я использую аутентификацию Windows и аутентификацию DomainService.
1 ответ
Вы можете поместить все строки домена \ группы в статический класс - тогда, по крайней мере, все строки в жестком коде находятся в одном месте.
Если вы хотите использовать атрибут requireRole, то строки должны быть константными, а не статическими, иначе VS будет жаловаться во время сборки.
Жестко закодированное имя группы не так уж и плохо - проблема заключается в жестко закодированном доменном имени IMHO, поскольку вы можете определить группы, которые являются эксклюзивными для вашего приложения, и перенести бремя настройки на администратора сети (именно так ведут себя многие серверные приложения Windows)
В качестве альтернативы вы можете использовать стандартные роли ASP.NET и иметь некоторые пользовательские сопоставления между группами доменов и ролями ASP.NET (немного похоже на то, как SQL Server должен это делать)