1

asp.net メンバーシップ認証に問題があります。メインの Web 構成を次のように構成しました。

<connectionStrings>
    <add name="xxx" connectionString="Data Source=; Initial Catalog=; Integrated Security=;"    providerName="System.Data.SqlClient" />
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer"
  connectionString="Data Source=; Initial Catalog=; Integrated Security=;"
  providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
    <roleManager enabled="true" defaultProvider="MyProvider">
       <providers>
        <add name="MyProvider"
        type="System.Web.Security.SqlRoleProvider" 
        connectionStringName="Devices"
        applicationName="MembersTable" />
       </providers>
    </roleManager>

    <membership defaultProvider="MyProvider">
      <providers>
        <add name="MyProvider"
        type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="" />
      </providers>          
    </membership>
    <authentication mode="Forms">
        <forms loginUrl="Denied.aspx" name=".ASPXFORMSAUTH"/>
    </authentication>
  <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>` 

そして指定されたフォルダで私の設定は次のようになります

<configuration>
  <location>
    <system.web>
        <authorization>
            <allow roles="role1"/>
            <deny users="*" />
        </authorization>
    </system.web>
  </location>
</configuration>

しかし、ログイン後、フォルダーファイルにアクセスできず、メソッドでDenied.aspxユーザーを確認し、ページMembership.ValidateUserを呼び出してページに戻りますResponse.Redirect。これで十分ですか、それとも保護されたページをリクエストする別の方法が必要ですか

if (
       Membership.ValidateUser(this.txtUsername.Text, this.txtPassword.Text))
        {

                Response.Redirect("/tempUser/Role1Page.aspx");

        }
        else {
            Response.Redirect("Denied.aspx");
        }
4

1 に答える 1

0

ユーザーが役割に含まれていないか、役割が適切に構成されていないようです (スニペットでは正しいように見えますが)。これは、Web サイト構成ツール (プロジェクト メニュー、ASP.Net 構成、セキュリティ) を表示するか、コードで確認できますUser.IsInRole("rolename")

于 2013-01-17T13:55:33.663 に答える