Link security trimming in asp.net mvc

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

  • I use the template for an asp.net mvc web application in Visual Studio 2008 that came with the beta release of asp.net 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 asp.net web forms. (Can that be used with mvc? Or is it only for web forms?)

Answers


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# asp.net .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...