ASP.NET MVC 2 Авторизируйте ТОЛЬКО неподтвержденных пользователей - PullRequest
1 голос
/ 08 мая 2010

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

1 Ответ

4 голосов
/ 08 мая 2010

То, что вы спрашиваете, не совсем похоже на авторизацию - по моему мнению, авторизованному пользователю (в данном случае не авторизованному пользователю) будет предоставлен ActionResult (в данном случае представление), тогда как неавторизованному пользователю не. В том, что вы описываете, ActionResult возвращается для всех пользователей; мы просто хотим отправить дополнительные html-файлы из вашей вкладки неаутентифицированным пользователям.

Вы можете просто проверить User.Identity.IsAuthenticated или Request.IsAuthenticated и, если не прошли проверку подлинности, выдать HTML-код для вкладки входа. Вы можете не помещать это в MVC UserControl

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%
    if (!Request.IsAuthenticated) {
%>
        <!-- html here for your sign in tab -->
<%
    }
    else {
%> 
        <!-- possibly want a sign out tab here for authenticated users? -->
<%
    }
%>

Поместите пользовательский элемент управления в общую папку, а затем используйте в виде, подобном этому

<% Html.RenderPartial("Name of User Control"); %>
...