Единственная заморочка при работе на основании ролей - это УДВОЕНИЕ ApplicationID и, как следствие, - задвоение номеров юзеров в аутентификационных базах:
Это происходит практически у всех и чтобы бороться с этим - надо понять две вещи.
- По умолчанию в Machine.config уже определено по нескольку провайдеров ролей. Причем, как видите, в базы они пишут имена приложений "/".
... 00182: <system.web> 00183: <processModel autoConfig="true" /> 00184: <httpHandlers /> 00185: <membership> 00186: <providers> 00187: <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /> 00188: </providers> 00189: </membership> 00190: <profile> 00191: <providers> 00192: <add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 00193: </providers> 00194: </profile> 00195: <roleManager> 00196: <providers> 00197: <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 00198: <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 00199: </providers> 00200: </roleManager> 00201: </system.web>
- Однако профили работают всегда с именами applicationName = "/имя". Для этого можно создать вот такой конфигурационный файл (пример реальный). Тогда удвоения не происходит.
... 00060: <connectionStrings> 00061: <remove name="LocalSqlServer"/> 00062: <add name="LocalSqlServer" connectionString="server=localhost;Initial Catalog=vOtpusk;User ID=VotpuskLogin;Password=123456" providerName="System.Data.SqlClient"/> 00063: <add name="Votpusk" connectionString="server=localhost;Initial Catalog=vOtpusk;User ID=VotpuskLogin;Password=123456" providerName="System.Data.SqlClient"/> 00064: </connectionStrings> 00065: <system.web> 00066: <authentication mode="Forms"/> ... 00099: <httpRuntime maxRequestLength="300000"/> 00100: <roleManager enabled="true" defaultProvider="AspNetSqlProvider"> 00101: <providers> 00102: <remove name="AspNetSqlRoleProvider"/> 00103: <remove name="AspNetWindowsTokenRoleProvider"/> 00104: <add applicationName="/Votpusk" name="AspNetSqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="LocalSqlServer" /> 00105: </providers> 00106: </roleManager> 00107: <membership> 00108: <providers> 00109: <remove name="AspNetSqlMembershipProvider"/> 00110: <add applicationName="/Votpusk" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="False" requiresUniqueEmail="True" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordFormat="Hashed" maxInvalidPasswordAttempts="6" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> 00111: </providers> 00112: </membership> 00113: <profile defaultProvider="SqlProvider" > 00114: <providers> 00115: <clear/> 00116: <add applicationName="/Votpusk" name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="LocalSqlServer"/> 00117: </providers> 00118: <properties> 00119: <add name="LoginIsActivate" type="System.Boolean"/> 00120: <add name="LoginActivateGUID" type="String"/> 00121: <add name="LoginClearDate" type="System.DateTime"/> 00122: <add name="usPass" type="String"/> 00123: <add name="usName" type="String"/> 00124: <add name="usFamily" type="String"/> 00125: <add name="usParent" type="String"/> 00126: <add name="usTown" type="String"/> 00127: <add name="usBirth" type="System.DateTime"/> 00128: <add name="usGrowth" type="String"/> 00129: <add name="usWeigth" type="String"/> 00130: <add name="usContries" type="String"/> 00131: <add name="usHobbies" type="String"/> 00132: <add name="usPlans" type="String"/> 00133: <add name="usPhCamera" type="String"/> 00134: <add name="usVidCamera" type="String"/> 00135: <add name="usPhotoLen" type="System.Int32"/> 00136: <add name="usPhoto" type="String" serializeAs="Binary"/> 00137: </properties> 00138: </profile> ...
Comments ( )<00> <01> <02> <03> <04> <05> <06> <07> <08> <09> <10> <11> <12> <13> <14> <15> <16> <17> <18> <19> <20> <21> <22> <23>Link to this page: //www.vb-net.com/asp2/3/24.htm<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME>