/ / Roles - Problem z User.IsInRole - asp.net, role

Role - Problem z User.IsInRole - asp.net, role

Mam stronę rejestru, na której użytkownik jest przypisany do roli w następujący sposób po kliknięciu przycisku "Prześlij":

    MembershipUser oMU;

if (!(Roles.RoleExists("Stream")))
{
Roles.CreateRole("Stream");
}

oMU = Membership.CreateUser(txtUserName.Text.Trim(), txtPassword.Text.Trim(), txtEmail.Text.Trim());

Membership.UpdateUser(oMU);

Roles.AddUserToRole(oMU.UserName, "Stream");

Kiedy użytkownik przechodzi do ekranu logowania, mam następujące:

Kiedy użytkownik się loguje, muszę się upewnić, że rzeczywiście są oni częścią tej roli:

    if (User.IsInRole("Stream"))
{

}

ale nigdy nie przechodzi do bloku User.IsInRole. Co muszę zrobić, aby użytkownik zarejestrowany był częścią roli, tak aby działał z User.IsInRole.

Zwróć uwagę, że mam folder jako taki, więc potrzebuję ich do roli przesyłania strumieniowego:

    <?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*" />
<allow roles="Stream" />
</authorization>
</system.web>
</configuration>

Odpowiedzi:

1 dla odpowiedzi № 1

Ruszaj się <allow roles="Stream" /> powyżej <deny users="*" />. W przeciwnym razie wszyscy użytkownicy zostaną odrzuceni.

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

Upewnij się, że masz członkostwo i RoleManager w web.config

Oto próbka -

<membership defaultProvider="DefaultMembershipProvider">
<providers>
<clear/>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="XXXXXSqlConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="XXXXX"/>
</providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="false" defaultProvider="DefaultRoleProvider">
<providers>
<clear/>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="XXXXXSqlConnection" applicationName="XXXXX"/>
</providers>
</roleManager>

0 dla odpowiedzi nr 2

Spróbuj użyć HttpContext aby uzyskać bieżącego użytkownika logowania:

if (HttpContext.Current.User.IsInRole("Stream"))
{

}