我试图找出如何仅授权未经身份验证的用户。我在我的站点地图中显示了一个登录标签,我只希望它在用户尚未登录时显示。
答案 0 :(得分:4)
你所要求的内容听起来并不像授权 - 在我看来,授权用户(在这种情况下是未经身份验证的用户)将被提供给ActionResult
(在这种情况下是一个视图)而未经授权的用户不会。在您描述的内容中,为所有用户返回ActionResult
;我们只想向你未经身份验证的用户发布你的标签。
您可能只想检查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"); %>