程爱动漫 2023-02-09 10:45 采纳率: 83.3%
浏览 35
已结题

asp.net mvc Areas里面怎么添加独立的登录页面

asp.net mvc Areas里面怎么添加独立的登录页面

    <authentication mode="Forms">
      <forms defaultUrl="~/Home/Index" loginUrl="~/Login/Index"></forms>
    </authentication>

在网站根目录下,web.config里面添加上面的代码,开启Forms身份登录认证。
开启后 未登录情况下 访问 Home/Index Action会自动跳转到登录页面
但是
尝试添加了一个Area 名为 m
在m区域里面同样添加了HomeController indexView
访问m/Home/Index 并没有跳转到~/Login/Index.

现在的问题是,怎么让Forms认证对m区域内的Controller起作用?能不能在Areas区域里面添加该区域自己的登录页面?
按我的理解,一个区域,相当于一个独立的网站,比如全部的后台管理员功能,如果需要给管理员添加独立的管理员的登录页面。

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2023-02-09 16:24
    关注

    web.config放在Areas/m/web.config下无效的,题主是不是根目录下建立了m目录,然后将web.config放m目录中了?这样就是贴出来的错误。

    而且注意:元素节点只能在应用程序的根文件夹中的 web.config中配置。如果在子文件夹中使用这个节点就会报错。这也说明了每个应用程序只能定义一个身份验证类型。(引用自:https://www.cnblogs.com/goodsunny/archive/2013/06/02/3114318.html

    可以考虑~/Login/Index根目录路由代码中判断是否移动端ua,是的话跳转到移动端控制器

    
        public class LoginController : Controller
        {
            // GET: Login
            public ActionResult Index()
            {
                var ua = Request.UserAgent;
                if (ua.IndexOf("Android") != -1 || System.Text.RegularExpressions.Regex.IsMatch(ua, "AppleWebKit.*Mobile"))
                    return Redirect("/m/login?" + Request.QueryString);
                return View();
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月12日
  • 已采纳回答 2月9日
  • 创建了问题 2月9日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来