Asp.net mvc 发送HTTP头后,服务器无法修改Cookie+;asp.net mvc+;adfs签出
我已经为asp.net mvc应用程序实现了注销功能。我有一个名为SignOut的按钮,对于按钮click,我将代码挂接到一个控制器类中,如下所述:Asp.net mvc 发送HTTP头后,服务器无法修改Cookie+;asp.net mvc+;adfs签出,asp.net-mvc,adfs2.0,Asp.net Mvc,Adfs2.0,我已经为asp.net mvc应用程序实现了注销功能。我有一个名为SignOut的按钮,对于按钮click,我将代码挂接到一个控制器类中,如下所述: public void SignOut() { try { WSFederationAuthenticationModu
public void SignOut()
{
try
{
WSFederationAuthenticationModule.FederatedSignOut(null, null);
}
finally
{
if (FederatedAuthentication.SessionAuthenticationModule != null)
FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();
}
}
我在FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie()行中遇到错误代码>如下所述:
错误:发送HTTP头后,服务器无法修改Cookie。
有谁能帮我解决上述问题。FederatedSignOut删除SessionTokenCookie,然后重定向到方法参数(您的案例为空)
因此,不需要“finally”条款
当您移除它时,它会工作,对吗?您的控制器应该返回一个。例如:
[HttpPost]
[Route("logoff", Name = "LogOff")]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
WSFederationAuthenticationModule.FederatedSignOut(new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Issuer), new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Reply));
return new EmptyResult();
}
我删除了包含if(FederatedAuthentication.SessionAuthenticationModule!=null)FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();}的finally子句。我已经创建了一个名为Signout(即Signout.cshtml)的自定义视图,但现在抛出了一个jquery错误:预期对象,错误号:-2146823281。有人能帮我解决这个问题吗?我制作了一个示例asp.net mvc3应用程序,并为它实现了adfs身份验证。现在我连接了注销功能,发现应用程序运行良好。然后我在分析中发现,项目中包含了一个jquery插件文件(jquery.mobile-1.0.js),该文件创建了要弹出的jquery错误。