ASP.NET MVC 2仅授权未经身份验证的用户

时间:2010-05-07 20:20:57

标签: asp.net-mvc sitemapprovider

我试图找出如何仅授权未经身份验证的用户。我在我的站点地图中显示了一个登录标签,我只希望它在用户尚未登录时显示。

1 个答案:

答案 0 :(得分:4)

你所要求的内容听起来并不像授权 - 在我看来,授权用户(在这种情况下是未经身份验证的用户)将被提供给ActionResult(在这种情况下是一个视图)而未经授权的用户不会。在您描述的内容中,为所有用户返回ActionResult;我们只想向你未经身份验证的用户发布你的标签。

您可能只想检查User.Identity.IsAuthenticatedRequest.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"); %>