Link security trimming in mvc

I would like to show some links only to authenticated users in an mvc web application.

  • I use the template for an mvc web application in Visual Studio 2008 that came with the beta release of mvc.
  • I use forms authentication.
  • I would like to add something like the following to an existing view:
<a href="/Account/ChangePassword" rel="nofollow">Change password</a>

and only show the link to users who are logged in.

What is the simplest way to do that? I would like something as simple as security trimming of the web.sitemap that I have tried with web forms. (Can that be used with mvc? Or is it only for web forms?)


The following should work. You'll also need to do something similar in the controller action for this in case the user inputs the URL by hand in their browser. Or, as you say, you could restrict access to the action in the web.config.

 <% if (HttpContext.Current.Request.IsAuthenticated) { %>
    <a href="/Account/ChangePassword" rel="nofollow">Change password</a>
 <% } %>

You could build a custom SiteMapProvider like this one:

Building an ASP.NET MVC sitemap provider with security trimming

show change password link

show login link

You can simply it to just this:

Change password

Need Your Help

"Handle is invalid" error when opening SqlConnection

c# .net sql-server

This error has started occurring sporadically and inexplicably, particularly when connecting to our session state database. Here's the error:

How to Loop Thread.sleep() statement , until Specified Element Found in Selenium Webdriver using Java

java selenium

i want to loop Thread.sleep() statement , until specified element found, i dont want to give a specified Time in Thread.sleep() statement, instead of that i want to loop thread.sleep . so that it s...