在第一个加载中,我的应用程序应该向我显示"localhost/home/index",但总是将我重定向到"localhost/Account/login?ReturnUrl=%2f“。
这就是我的配置
RouteConfig
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}WebConfig
<authentication mode="Forms">
<forms defaultUrl="~/Home/index" loginUrl="~/Account/login" timeout="60" />
</authentication>控制器
[AllowAnonymous]
public class HomeController : BaseController [AllowAnonymous]
public class AccountController : BaseController我不想重定向到“localhost/帐户/登录”
更新
第一个加载总是进入条件,并执行RedirectToLoginPage方法。
public class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var load = (HomeModel)Session["SessionLayout"] == null;
...
if (load)
{
FormsAuthentication.SignOut();
//FormsAuthentication.RedirectToLoginPage();
PageLoad();
}
...
}
}
}发布于 2019-04-23 19:16:29
这是一个例子,我是如何使用actionfilter属性的,我希望它能有所帮助。
Actionfilter属性的代码;
namespace CP.Controladores
{
public class ValidateCaptchaAttribute : ActionFilterAttribute{
public override void OnActionExecuting(ActionExecutingContext
filterContext)
{
filterContext.ActionParameters["CaptchaIsValid"] = recaptchaResponse.IsValid;
base.OnActionExecuting(filterContext);
}
}控制器的代码。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
[CP.Controladores.ValidateCaptcha()]
public ActionResult MailDeContacto(FormCollection values, bool
CaptchaIsValid)
{
// Do something
}在标记该方法时,此过滤器只与操作"MailDeContacto“相关,否则您可以在全局筛选器中设置,并且该过滤器将在所有应用程序中产生影响。
https://stackoverflow.com/questions/55817664
复制相似问题