Как изменить страницу перенаправления по умолчанию URL-адреса в карте сайта на другой странице в C# asp.net

У меня есть две домашние страницы, которые отличаются для пользователей и администраторов. Для пользователей - Default.aspx, а для администратора - AdminDefault.aspx. На моей странице Site.Master он содержит URL-адрес по умолчанию для домашней страницы и других страниц по умолчанию, как показано ниже,

<ul id="menu">
     <li><a runat="server" id="home" href="~/">Home</a></li>
     <li><a runat="server" href="~/About.aspx">About</a></li>
     <li><a runat="server" href="~/Contact.aspx">Contact</a></li>
</ul>

Когда администратор входит в систему, администратор перенаправляет на домашнюю страницу по умолчанию

2 ответа

Решение

Учитывая, что у вас есть следующая функция, чтобы определить, является ли пользователь членом группы администраторов.

bool IsInGroup(string user, string group)
{
    using (var identity = new WindowsIdentity(user))
    {
        var principal = new WindowsPrincipal(identity);
        return principal.IsInRole(group);
    }
}

Это просто вопрос перенаправления после оператора IF, например, так:

if(IsInGroup(User.Name, "Administrators")
    return RedirectToAction("AdminDefault.aspx");

(Имейте в виду, что приведенный выше пример кода написан из памяти и может быть не точным. На самом деле, вероятно, это не так)

Check Role Using session and provide condition like this


    string Role="";

    on Login button click event check the role

   YourLoginMethod()
   {
      // Your Login Code and after check
     //Pass Role in string above or Use session
     if(Role=="admin")
     {
     Response.Redirect("~/Admin.aspx");
    }
    else{
     Response.Redirect("~/Index.aspx");
    }
   }
Другие вопросы по тегам