gpt4 book ai didi

asp.net-mvc-2 - 使用 ASP.Net MVC 2 Ajax 登录

转载 作者:行者123 更新时间:2023-12-01 16:20:01 24 4
gpt4 key购买 nike

此问题与 ASP.NET Forms Authentication without Redirect 相关只是我无法让它发挥作用。 MVC 2 更改了其脚本文件,现在它们的列表如下:

http://www.asp.net/ajaxlibrary/CDNAjax4.ashx

现在我只是在黑暗中拍摄,但反复试验使我的范围缩小到包括

MicrosoftAjax.js
MicrosoftAjaxCore.js
MicrosoftAjaxComponentModel.js
MicrosoftAjaxSerialization.js
MicrosoftAjaxNetwork.js
MicrosoftAjaxWebServices.js
MicrosoftAjaxApplicationServices.debug.js

问题是我现在得到了 javascript 异常:

Microsoft JScript 运行时错误:Sys.InvalidOperationException:尚未设置 Web 服务的路径。

通过谷歌搜索,我发现这条路径应该是“~/ScriptServices_AuthenticationService.asmx”,但执行类似的操作:

Sys.Services._AuthenticationService.DefaultWebServicePath = "~/ScriptServices_AuthenticationService.asmx";

不起作用(我假设它是私有(private)成员)。那么问题来了,有谁知道如何让 ajax/async FormsAuth 工作吗?是否有关于各种 MS ajax 服务依赖哪些 js 文件的明确指南?最后,如果以上都没有,有没有办法在服务器端执行 FormsAuth,这样它就不会重定向(这样我就可以使用 ajax 表单调用 Controller 操作)? ...我尝试使用 FormsAuthentication.SetAuthCookie() 但这似乎对我不起作用。

编辑:我发现 FormsAuthentication.SetAuthCookie() 实际上正在工作,但它需要关闭响应流(当然,当发送缓冲区并设置 cookie 时)。这对我不起作用,因为这对我的目的来说太晚了。

编辑:我正在尝试的完整描述可能是必要的。我的ajax 表单用于创建一个新帐户。在服务器端,我创建帐户并登录。在前端,我等待 ajax 完成事件,然后将我的注册向导表单前进到下一页,该页面将完成其他注册步骤。在伪代码中, Controller 操作如下所示:

public JsonResult CreateAsync(LoginForm form)
{
CreateAccount(form);

FormsAuthentication.RedirectFromLoginPage(form.Email, false);

return Json(
new
{
Email = form.Email,
Name = form.Name,
Message = "Success"
});
}

登录方法结束响应流,然后客户端ajax变得困惑。我尝试了 FormsAuth.SetAuthCookie,但存在如上所述的问题。

最佳答案

哦,没关系。实际上,您应该使用 FormsAuthentication.Authenticate() 而不是 RedirectFromLoginPage。

如果您想以 JSON 请求的形式调用该方法,则需要自行实现此行为。

关于asp.net-mvc-2 - 使用 ASP.Net MVC 2 Ajax 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com