程爱动漫 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日

悬赏问题

  • ¥15 matlab在安装时报错 无法找到入口 无法定位程序输入点
  • ¥15 收益高的广告联盟有哪些
  • ¥15 Android Studio webview 的使用问题, 播放器横屏全屏
  • ¥15 删掉jdk后重新下载,Java web所需要的eclipse无法使用
  • ¥15 uniapp正式环境中通过webapi将本地数据推送到设备出现的跨域问题
  • ¥15 xui建立节点,显示错误
  • ¥15 关于#单片机#的问题:开始、复位、十进制的功能可以实现,但是切换八进制的功能无法实现(按下按键也没有效果),把初始状态调成八进制,也是八进制可以实现但是切换到十进制不行(相关搜索:汇编语言|计数器)
  • ¥15 VINS-Mono或Fusion中feature_manager中estimated_depth是特征的深度还是逆深度?
  • ¥15 谷歌浏览器如何备份抖音网页数据
  • ¥15 分别有什么商家下面需要非常多的骑手为它工作?