2016-08-01 5 views
0

Итак, я работаю над существующим приложением. У меня есть страница входа, которая работает, и перенаправляет на основе роли пользователя при входе в систему ... пока все хорошо. Но когда пользователь попадает на страницу, на которую они были перенаправлены, метод IsInRole ничего не приносит и перенаправляет их на страницу входа.Поставщик роли ASP.NET не работает

На странице входа у меня есть:

if (Membership.ValidateUser(nameTest, passwordLogIn.Text)) 
{ 
    if (Roles.IsUserInRole(nameTest, "Admin")) 
     Response.Redirect("/admin.aspx"); 
    else if (Roles.IsUserInRole(nameTest, "Manager")) 
     Response.Redirect("/admin.aspx"); 
    else if (Roles.IsUserInRole(nameTest, "User")) 
     Response.Redirect("/mydonations.aspx"); 
} 

Который работает просто отлично ...

И странице администратора У меня есть:

if (!(User.IsInRole("Admin") || (User.IsInRole("Manager")))) 
{ 
    Response.Redirect("/Default.aspx"); 
} 

Который не может ... Я «Будь очень благодарен, если кто-то там сможет определить, что происходит. Я (разумеется) не вижу проблемы, и что более раздражает это отрывки из других успешно работающих проектов.

+0

Не могли бы вы показать ** членство ** и ** roleManager ** теги в web.config? – Win

+0

@Win это то, что у меня есть: <включена roleManager = "истинный"> <добавить connectionStringName = "ApplicationServices" ApplicationName = "/" название = "AspNetSqlRoleProvider" Тип = "System.Web.Security. SqlRoleProvider»/> <добавить ApplicationName = "/" название = "AspNetWindowsTokenRoleProvider" тип = "System.Web.Security.WindowsTokenRoleProvider"/> PaulBinCT2

+0

@Win и это: Спасибо за ваше время! – PaulBinCT2

ответ

0

С MemhershipProvider является SqlMembershipProvider, вы хотите использовать SqlRoleProvider для RoleProvider вместо WindowsTokenRoleProvider.

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 
    <providers> 
    <clear/> 
     <add connectionStringName="ApplicationServices" 
     applicationName="/" 
     name="AspNetSqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider, System.Web"/> 
    </providers> 
</roleManager> 
+0

Большое вам спасибо ? за помощь ... Я думаю, что, возможно, опечатка я пытался: <добавить connectionStringName = "ApplicationServices" ApplicationName = "/" name = "AspNetSqlRoleProvider" type = "System.Web.Security.SqlRoleProvider "/> И та же проблема ... любые другие идеи Еще раз спасибо Я искренне очень благодарен – PaulBinCT2

+0

Глядя на IntelliTrace я вижу:! System.Security.Security Exception был брошен Запрошенный доступ к реестру не разрешен »Излишне говорить, что я сейчас полностью смущен, если он бросает исключение, он делает это молча или, возможно, это красная селедка. – PaulBinCT2

Смежные вопросы