Controller:
public class HomeController : Controller
{
Models.MakaleSitesiDBEntities entity = new Models.MakaleSitesiDBEntities();
public ActionResult ArticlesByCategory(int CategoryId)
{
IEnumerable<Models.TableArticles> articles = entity.TableArticles.Where(a => a.CategoryId == CategoryId && a.IsActive == true).OrderBy(a => a.PublishedOn);
return View(articles.Reverse());
}
public ActionResult ArticleDetails(Guid ArticleId)
{
if (Session["IsUserRead"] == null || (Guid)Session["IsUserRead"] != ArticleId)
{
Session["IsUserRead"] = ArticleId;
Models.TableArticles article = entity.TableArticles.Where(a => a.ArticleId == ArticleId).SingleOrDefault();
article.ViewCount++;
entity.SaveChanges();
}
return View(entity.TableArticles.Where(a => a.ArticleId == ArticleId).SingleOrDefault());
}
}
ArticlesByCategory allows Anonymous Users but ArticleDetails not. It routes page to loginpage?
global.asax
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace MakaleSitesi
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// Use LocalDB for Entity Framework by default
Database.DefaultConnectionFactory = new SqlConnectionFactory("Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
BundleTable.Bundles.RegisterTemplateBundles();
}
}
}
Why this is happening?
One possible explanation for this behavior is that the request is hitting some other controller action that is decorated with the
[Authorize]attribute, not theArticleDetailsaction. This could happen because of some custom routing setup that you might have done which doesn’t work as you expect.Another possible explanation is that you have some configuration in IIS or whatever web server you are using which denies anonymous access to a given url.