Forms Authentication web config authentication modeForms forms login
Forms Authentication В web. config: <authentication mode="Forms"> <forms login. Url="~/Account/Login" timeout="2880" /> </authentication> 3
Класс Membership Create. User(String, String) Create. User(String, String, Boolean, Membership. Create. Status) Create. User(String, String, Boolean, Object, Membership. Create. Status) Delete. User(String, Boolean) Find. Users. By. Email(String, Int 32, Int 32) Find. Users. By. Name(String, Int 32, Int 32) Generate. Password Get. All. Users() Get. All. Users(Int 32, Int 32) Get. Number. Of. Users. Online Get. User() Get. User(Boolean) Get. User(Object) Get. User(String) Get. User(Object, Boolean) Get. User(String, Boolean) Get. User. Name. By. Email Update. User Validate. User Класс Membership находится в пространстве System. Web. Security 10
Класс Roles Метод Add. Users. To. Roles Add. User. To. Roles Create. Role Delete. Cookie Delete. Role(String) Delete. Role(String, Boolean) Find. Users. In. Role Get. All. Roles Get. Roles. For. User() Get. Roles. For. User(String) Get. Users. In. Role Is. User. In. Role(String) Is. User. In. Role(String, String) Remove. User. From. Roles Remove. Users. From. Roles Role. Exists 11
Регистрация провайдеров в приложении Провайдеры регистрируются в узлах <membership> и <role. Manager> файла web. config. <connection. Strings> <add name="Art. Museum. Db" connection. String="Data Source=. SQLEXPRESS; Attach. Db. Filename=|Data. Directory|Art. Museum. mdf; Integrated Security=True; User Instance=True " provider. Name="System. Data. Sql. Client" /> </connection. Strings> <system. web> <authentication mode="Forms"> <forms login. Url="~/Account/Login" timeout="2880" /> </authentication> √ √ <membership default. Provider="Default. Membership. Provider"> <providers> <add connection. String. Name="Art. Museum. Db" enable. Password. Retrieval="false" enable. Password. Reset="true" requires. Question. And. Answer="false" requires. Unique. Email="false" max. Invalid. Password. Attempts="5" min. Required. Password. Length="6" min. Required. Nonalphanumeric. Characters="0" password. Attempt. Window="10" application. Name="/" name="Default. Membership. Provider" type="System. Web. Providers. Default. Membership. Provider, System. Web. Providers, Version=1. 0. 0. 0, Culture=neutral, Public. Key. Token=31 bf 3856 ad 364 e 35" /> </providers> </membership> <role. Manager enabled="true" default. Provider="Default. Role. Provider"> <providers> <add connection. String. Name="Default. Connection" application. Name="/" name="Default. Role. Provider" type="System. Web. Providers. Default. Role. Provider, System. Web. Providers, Version=1. 0. 0. 0, Culture=neutral, Public. Key. Token=31 bf 3856 ad 364 e 35" /> </providers> </role. Manager> … </system. web> 12
Классы из Web. Matrix. Web. Data namespace System. Web. Sequrity Membership. Provider Simple. Membership. Pro vider Role. Provider Simple. Role. Provider static class Web. Security Фасадным классом для Simple. Membership. Provider и Simple. Role. Provider является статический класс Web. Security. 14
Регистрация провайдеров Если приложение MVC 4 создано по шаблону Internet, провайдеры из Web. Matrix зарегистрированы неявно. Их явная регистрация необходима для MVC 3. <system. web> <membership default. Provider="Simple. Membership. Provider"> <providers> <clear/> <add name="Simple. Membership. Provider" type="Web. Matrix. Web. Data. Simple. Membership. Provider, Web. Matrix. Web. Data"/> </providers> </membership> <role. Manager enabled="true" default. Provider="Simple. Role. Provider"> <providers> <clear/> <add name="Simple. Role. Provider" type="Web. Matrix. Web. Data. Simple. Role. Provider, Web. Matrix. Web. Data"/> </providers> </role. Manager> </system. web> 16
Поддержка Forms Authentication в шаблоне приложения Модель – файл Account. Models. cs Контроллер – файл Account. Controller. cs Представление - папка Account Фильтр контроллера – файл Filters/Initialize. Simple. Membership. Attribute. cs 17
Как использовать существующую базу Пусть имеется готовая база данных в виде. mdf файла в папке App_Data. В web. config есть строка соединения с этой базой. Строка называется "My. Con. Str". 1. В /Initialize. Simple. Membership. Attribute. cs приводим в соответствие с нашей базой вызов метода Web. Security. Initialize. Database. Connection("Default. Connection", "User. Profile", "User. Id", "User. Name", auto. Create. Tables: true); 2. Изменяем имя строки соединения с "Default. Connection" на "My. Con. Str" a) в файле ~Models/Account. Model. cs b) в файле ~/Filters/Initialize. Simple. Membership. Attribute. cs Если нужны предустановленные пользователи и роли, создаем их после вызова Initialize. Database. Conn ection кодом вроде этого: string ROLE = "teacher", USER = "teacher 1", PASS = "@teacher 1"; if (!System. Web. Security. Roles. Role. Exists(ROLE)) { System. Web. Security. Roles. Create. Role(ROLE); } if (!Web. Matrix. Web. Data. Web. Security. User. Exists(USER)) { Web. Matrix. Web. Data. Web. Security. Create. User. And. Account(USER, PASS); System. Web. Security. Roles. Add. User. To. Role(USER, ROLE); } 18
- Slides: 22