lxysoid 2025-03-06 16:54 采纳率: 0%
浏览 5

.net MVC 关于部署的问题

用.net MVC 设置了路由,且登录时校验用户的Token是否存在,没有的话则返回登录界面
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional }
        );

现在目前在IIS里的80端口设置了虚拟路径

img

目前是登录后,执行的方法会被当成路由校验,导致返回登录界面,请问有什么方法可以解决吗

你好,请问下,我现在生成网址是http://localhost/QLims/ --- 能够正常出来登录界面
登录过后我是需要执行一个获取该登录用户的模块跳转,会执行一个 http://localhost/QLims/ 来获取最终生成的登录界面,如假设是XX用户会生成http://localhost/QLims/Home/XXIndex 在这一步直接被当成路由,跳转会默认的Login/Index

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-06 16:54
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在.NET MVC中,可以使用AuthorizeAttribute来进行身份验证和授权检查。您可以在需要进行身份验证的Controller或Action上添加AuthorizeAttribute,这样在请求到达Action之前会自动进行身份验证,如果验证失败则会重定向到登录界面。 可以在Global.asax.cs中注册一个全局的AuthorizeAttribute,然后应用在需要进行身份验证的地方,例如:
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext.Request.IsAuthenticated)
            {
                // 校验Token是否存在,如果不存在则重定向到登录界面
                // 这里可以添加您自己的身份验证逻辑
                return true;
            }
            else
            {
                return false;
            }
        }
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filterContext.Result = new RedirectResult("~/Login/Index");
        }
    }
    

    然后在需要进行身份验证的Controller或Action上添加CustomAuthorizeAttribute即可:

    [CustomAuthorize]
    public class YourController : Controller
    {
        // your actions
    }
    

    这样在登录后,执行的方法不会被当成路由校验了,而是会根据Token的存在与否进行身份验证。如果Token不存在,则会重定向到登录界面。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月6日
  • 创建了问题 3月6日