Asp.net mvc 3 成功登录后显示注销按钮
我使用的是mvc3应用程序,在点击登录按钮后,我检查用户是否在jquery中使用ajax调用进行了验证。若用户经过身份验证,那个么我将返回true,并在Onsuccess方法中将其重定向到主页。代码如下:Asp.net mvc 3 成功登录后显示注销按钮,asp.net-mvc-3,Asp.net Mvc 3,我使用的是mvc3应用程序,在点击登录按钮后,我检查用户是否在jquery中使用ajax调用进行了验证。若用户经过身份验证,那个么我将返回true,并在Onsuccess方法中将其重定向到主页。代码如下: 函数成功(响应){ var mesg=$(“#lblMess”)[0]; 开关(响应){ 大小写正确: var url=“/Home/Search”; takeToHomePage(url); $(location.attr('href',url); 打破 案例错误: mesg.style.
函数成功(响应){
var mesg=$(“#lblMess”)[0];
开关(响应){
大小写正确:
var url=“/Home/Search”;
takeToHomePage(url);
$(location.attr('href',url);
打破
案例错误:
mesg.style.color=“红色”;
mesg.innerHTML=“电子邮件id或密码不正确”;
打破
案例“错误”:
mesg.style.color=“红色”;
mesg.innerHTML=“发生错误”;
打破
}
}
现在,我在我制作的_layout.cshtml页面中添加了一个注销按钮
在登录页面中没有可见性,所以如果我之前显示此注销按钮
开关启动,用户无效,然后显示“注销”按钮,但
如果用户经过身份验证并试图在内部显示“注销”按钮,则为true
那么它就不起作用了
对服务器进行Ajax调用,检查用户是否经过身份验证。然后可以切换“显示”和“隐藏”按钮<代码>这不是最好的方法。但谈论好的方法是通过继承ICustomPrincipal创建一个自定义CustomPrincipal,并且可能会有更多的更改。如果你刚刚开始使用MVC,我认为这对你来说太多了
此解决方案仅用于切换“注销”按钮的可见性,我不建议将此作为最佳做法
$.get("User/CheckUserAuthenticity",function(response){
if(response == "true")
{
//button show;
}
});
您的控制器操作可以是
public ActionResult CheckUserAuthenticity()
{
return Json(User.Identity.IsAuthenticated,JsonRequestBehavior.AllowGet);
}
如果目的是重定向,为什么要使用ajax。这是毫无意义的。只需执行正常的提交和重定向。您是否使用表单身份验证?是的,Reddy,这是表单身份验证。最后添加的消息是,如果用户通过身份验证,则在真实情况下,我尝试隐藏登录按钮和显示签出按钮,但没有发生,它仍然仅显示登录按钮。登录按钮id=$(“#登录”).css(“display”,“none”);SignOut按钮id=$(“#SignOut”).css(“display”,“block”);这工作正常我在启动true和false case之前使用此代码(仅限开关内部)但是,当我在true case中使用此代码时,它不起作用。您是否使用了我上面建议的代码?如果您可以使用当前代码和问题更新您的问题也会更好。您建议的代码不是仅由您评论的最佳实践,第二件事是何时调用它?