ASP.Net成员。保存在不同数据库中的角色

 2023-02-17    369  

问题描述

我正在学习如何操纵会员类.

我已经使用aspnet_regsql.exe添加了成员​​资格数据库到我的网站的SQL数据库,到目前为止,我可以在没有问题的情况下列出和添加用户.但是,我决定使用ASP.NET配置工具添加一些角色.添加了角色,但没有显示在我的SQL数据库的ASPNET_ROLES表中.

ASP.Net成员。保存在不同数据库中的角色

我已经注意到aspnetdb.mdf在我的vs2010 app_data文件夹中为有问题的网站,并且角色出现在那里.用户不在该数据库中,但在我的web.config文件中配置的SQL数据库中:

<configuration> 
    <connectionStrings>
        <add name="myConnString" connectionString="Data Source=SQLDB;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
        <authentication mode="Forms" />
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </assemblies>
        </compilation>
        <machineKey validationKey="LOTSOFNUMBERS"
        decryptionKey="MORENUMBERS" validation="SHA1" decryption="AES"/>
        <membership  defaultProvider="SqlProvider">
            <providers>
                <clear/>
                <add name="SqlProvider"
                connectionStringName="myConnString"
                type="System.Web.Security.SqlMembershipProvider"
                applicationName="myApp"
                requiresUniqueEmail="true"
                minRequiredPasswordLength="8"
                minRequiredNonalphanumericCharacters="0"
                requiresQuestionAndAnswer="false"
                passwordFormat="Encrypted"
                enablePasswordRetrieval="true"
                />
            </providers>
        </membership>
        <roleManager enabled="true" />
        <pages theme="myTheme">
        </pages>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</configuration>

如果可以使用我的数据库上的ASP.NET配置工具保存,修改和删除用户,那么我会预期角色要做同样的事情?我错过了什么阶梯?

推荐答案

您缺少rolemanager.以下是一个例子:

<roleManager enabled="true">
    <providers>
        <clear />
        <add connectionStringName="myConnString" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
        <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
    </providers>
</roleManager>

其他推荐答案

您需要设置角色提供程序配置,如您的会员提供者

<roleManager enabled="true" defaultProvider="TheRoleProvider">
 <providers>
  <clear/>
   <add name="TheRoleProvider" 
        type="System.Web.Security.SqlRoleProvider"
        connectionStringName="myConnString" 
        applicationName="/"/>
 </providers>
</roleManager>

以上所述是小编给大家介绍的ASP.Net成员。保存在不同数据库中的角色,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34103.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。