1

我试图弄清楚如何只授权未经身份验证的用户。我的站点地图中显示了一个登录选项卡,我只希望它在用户尚未登录时显示。

4

1 回答 1

4

您的要求听起来不像授权 - 在我看来,授权用户(在这种情况下是未经身份验证的用户)将被提供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"); %>
于 2010-05-07T20:24:20.787 回答