Rob*_*Rob 9 iphone forms-authentication google-chrome ipad asp.net-mvc-3
我在iPad/iPhone上使用Chrome时遇到了麻烦,我认为这是一个非常简单的任务,适用于Chrome桌面(Mac和PC)以及iPad/iPhone上的Safari.
我的页面上有以下jquery:
$("#login-login-button").click(function(){var username = $("#Username").val(); var password = $("#Password").val();
$("#login-loading-icon").show();
$.post("/login", { username: username, password: password }, function (data, response) {
if (response == "success") {
if (data.IsValid) {
window.location.href = "/profile";
}
else {
$("#login-error-message").html(data.ErrorMessage);
$("#login-loading-icon").hide();
}
}
else {
alert("An error occurred, please try again.");
}
});
});
Run Code Online (Sandbox Code Playgroud)
Controller Action的代码如下所示:
[HttpPost]
public JsonResult Index(string username, string password)
{
AjaxResponseModel ajaxResponseModel = new AjaxResponseModel();
User user = UserDAL.Select(username, Hash.MD5(password));
if (user != null)
{
if (!user.IsVerified.Value)
{
ajaxResponseModel.AddErrorMessage("Account not verified.");
}
else if (!user.IsActive.Value)
{
ajaxResponseModel.AddErrorMessage("Your account is not active.");
}
else
{
FormsAuthentication.SetAuthCookie(username, false);
}
}
else
{
ajaxResponseModel.AddErrorMessage("Login details incorrect.");
}
return Json(ajaxResponseModel);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试通过非ajax请求设置Auth Cookie,但它也没有工作.
而且我发现在iPad/iPhone上如果我使用Chrome菜单中的"请求桌面版网站",问题就会消失,但此时我的网站上没有移动/桌面的概念,即Chrome第一次获得的内容应该是什么是桌面网站......
已经在这里使用了:使用iPhone UIWebView时的Asp.Net Forms身份验证
我使用默认配置,这在当前浏览器分发时更合理.
<browsers>
<browser refID="Default">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |