我对这些教程有疑问: https://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.140%29.aspx
我已经使用这些提示创建了自己的网站,因此在我的HTML文件中,我当然会在表单中插入:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
我创建了一个Logon.aspx页面以便放入登录表单,然后单击按钮调用javascript函数login():
<script type="text/javascript">
function login() {
var user = $('#username').val();
var password = $('#password').val();
PageMethods.login_GO(user, password, ok, ko);
function ok(result) {
alert(result);
}
function ko(result) {
alert('Cannot process your request at the moment, please try later.');
}
}
</script>
然后javascript函数调用后面的代码方法(在Logon.aspx.cs文件中)
[WebMethod]
public string login_GO(string user, string password)
{
if (user == "cool" && password == "whau")
{
FormsAuthentication.RedirectFromLoginPage(user, true);
return "done";
}
else
{
return "KO";
}
}
我唯一的答案是来自浏览器的警告消息框:
目前无法处理您的请求,请稍后再试。
为什么你认为这种方法不起作用?
我的意思是通常我不需要别的东西吗?
提前致谢!
编辑:
在开始调试代码之前,我决定在Web.config配置中禁用身份验证功能(我只对以下所有这些行发表评论):
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH" defaultUrl="PlazaMonitor.aspx" >
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>-->
现在,我可以在后面的代码(Logon.aspx.cs)上调用login_GO方法。
一切正常,但不是认证(因为我禁用了它)
所有这一切的目标是使用后台代码方法对用户进行身份验证,因此如果我需要在使用身份验证方法之前进行身份验证,那么我将会疯狂^^!
编辑:
我只是理解,在你是AUTHENTICATE之前,每个ressource都应该被禁用,所以即使是过去认证的WebMethod也被禁用了!
你知道我们可以改变/允许我们需要的好资源吗(在Web.config中)吗?
提前感谢您的帮助;)!