views:

324

answers:

1

im trying to figure out how to authorize only unauthenticated users. i have a sign in tab displayed in my site map and i only want it to show up when the user hasnt yet logged in.

+4  A: 

What you're asking doesn't quite sound like authorisation - in my opinion, an authorised user (in this case an unauthenticated user) would be served the ActionResult (in this case a view) whereas an unauthorised user would not. In what you describe, the ActionResult is returned for all users; we just want to emit additional html fr your tab to unauthenticated users.

you might just want to check User.Identity.IsAuthenticated or Request.IsAuthenticated and if unauthenticated, emit the HTML for your sign in tab. You might want ot put this into an 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? -->
<%
    }
%>

Put the user control in the shared folder then use in a view like so

<% Html.RenderPartial("Name of User Control"); %>
Russ Cam
+1 - I was thinking the exact same thing!
Chris