MVC LoginPage 上的部分视图链接不起作用(用户尚未登录/授权)
Posted
技术标签:
【中文标题】MVC LoginPage 上的部分视图链接不起作用(用户尚未登录/授权)【英文标题】:Partial View Link on MVC LoginPage not working (User not logged-in/Authorized yet) 【发布时间】:2021-07-16 00:28:06 【问题描述】:我正在使用 ASP.NET MVC 开发网站并使用 LoginPage。在 LoginPage 上,我们还有“忘记密码”链接,单击该链接会打开一个模态弹出窗口(引导程序),其中的内容作为 PartialView 返回。
我面临的问题是,当我单击页面上的“忘记密码”链接时,会调用 Login 控制器的 Index 方法而不是 ForgotPassword 相关方法,这会导致 LoginPage 在模式弹出窗口中返回.
[AllowAnonymous]
[System.Web.Services.WebMethod()]
public ActionResult ForgotPassword()
return PartialView("_ForgotPassword");
这似乎是某种身份验证问题,因为如果我使用旧登录页面(这是一个 .aspx
页面)登录,然后尝试手动转到新的 ASP.NET MVC 页面,登录时所有链接都带有 partialView页面运行良好。
其他人有这个问题吗?任何指针将不胜感激。
谢谢
编辑1:用于调用模态弹出窗口的javascript
function AttachPopup()
$('.modal-popup').click(function (event)
event.preventDefault();
event.stopImmediatePropagation();
var url = $(this).attr('data-content-url');
var modalId = $(this).attr('data-target-model');
var target = $(this).attr('data-target-content');
$.ajax(
url: url,
type: 'POST',
datatype: "json",
cache: false,
traditional: true,
success: function (data)
$(target).empty();
$(target).append(data);
$(modalId).modal('show');
);
);
url 正确,但仍调用 index。
【问题讨论】:
你能发布你的打开模式的javascript吗? 【参考方案1】:AllowAnonymous 属性时,AuthorizeAttribute 的 onAuthorization 方法简单地忽略授权和认证检查。即使您有一个全局授权过滤器。它应该仍然有效。一位用户遇到了类似的问题。请查看此link
【讨论】:
【参考方案2】:如前所述,我正在将一个 aspx 网站转换为 MVC。在 Web.config 中,我们有
<authorization>
<deny users="?" />
</authorization>
这优先于 MVC [AllowAnonymous] 属性。注释掉上面的代码,解决了我的问题。
注意事项:当您这样做时,请使用 [Authorize] 属性检查您的网站是否安全
【讨论】:
以上是关于MVC LoginPage 上的部分视图链接不起作用(用户尚未登录/授权)的主要内容,如果未能解决你的问题,请参考以下文章
MVC - 使用 Viewbag 变量来确定部分视图不起作用
Bootstrap 3 选项卡上的 MVC 部分视图渲染更改