0

我已经通过 ftp 手动发布了我的 asp.net 网站,一切正常(登录、注册等)但角色不起作用,例如:普通用户可以访问仅为管理员创建的页面。

这是我的 web.config:

<?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="MyConnStrg" connectionString="provider details..etc.."
      providerName="System.Data.SqlClient" />
  </connectionStrings>
    <system.web>
      <roleManager enabled="true" defaultProvider="MyWebsiteTC">
        <providers>
          <add name="MyWebsiteTC"
          type="System.Web.Security.SqlRoleProvider"
          applicationName="/"
          connectionStringName="MyConnStrg" />
        </providers>
      </roleManager>
      <membership defaultProvider="MyWebsiteTCMembershipProvider">
        <providers>
          <add name="MyWebsiteTCMembershipProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="MyConnStrg"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          applicationName="/"
          requiresUniqueEmail="true"
          passwordFormat="Hashed"
          maxInvalidPasswordAttempts="5"
          minRequiredPasswordLength="7"
          minRequiredNonalphanumericCharacters="1"
          passwordAttemptWindow="10"
          passwordStrengthRegularExpression=""/>
        </providers>
      </membership>

      <compilation debug="true" targetFramework="4.0" />
      <authentication mode="Forms">
        <forms name=".KKDS"
          timeout="30"
          slidingExpiration="true"
          cookieless="UseCookies"
          defaultUrl="~/Default.aspx"
       />
      </authentication>
    </system.web>
</configuration>

管理文件位于带有此 web.config 的文件夹中:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <customErrors mode="Off"/>
    <authorization>
      <allow roles="Client" />
      <deny users="?"/>
    </authorization>

  </system.web>
</configuration>

为每个用户添加了角色,一切正常,但角色身份验证没有。我能做些什么?

4

2 回答 2

0

Wiktor Zychla 提出了一个很好的建议。如果该站点在您发布之前正在运行,我认为问题可能与ApplicationName...有关。我为其他处理ApplicationName. 看这个...

使用 .net Membership Provider 从开发到生产

于 2012-07-22T03:09:29.640 回答
0

我认为应该是:

 <authorization>
    <allow roles="Client" />
    <deny users="*"/>
 </authorization>

因为您希望允许角色用户Client并拒绝其他任何人(而不是拒绝未登录的用户,如您的代码段中所示)。

于 2012-07-21T21:07:36.200 回答