我是使用C#进行web编程的新手,并为移动应用程序开发WCF RESTful服务。HTTP响应未经授权的重定向到login.aspx
在REST服务类中,我将响应代码设置为HTTP 401 Unauthorized,但它突然重定向其他页面。
这里是我的服务代码:
[WebGet]
public string login(string id, string password)
{
if (Membership.ValidateUser(id, password))
{
FormsAuthentication.SetAuthCookie(id, false);
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.OK;
return "Login Succeeded";
}
else
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized;
return "Login Failed";
}
}
如果登录成功,它工作正常,但如果我输错密码,这个页面重定向到
http://localhost:50195/login.aspx?ReturnUrl=%2fuser%2flogin%3fid%3dtest74323%26password%3d535201&id=test74323&password=####
我认为还有的自动重定向到用户登录页面配置,如何关闭该配置?我认为在服务中使用表单身份验证时问题很复杂。
我正在使用登录cookie的表单身份验证,我知道这不是REST风格的方式,但由于与其他服务集成,我无法提供帮助。 (公司内部事务,hh)
如果有一些没有错误但更好的方式来实现登录服务,请让我知道。
当我使用网络浏览器访问服务时,如何显示更好的错误消息?我知道如果登录成功,没有什么可以返回的,我想如果客户端使用网络浏览器访问,我最好显示字符串值。
在你的配置文件中有一个'authentication'部分,包含表单身份验证的登录页面? –
nope。只有表单身份验证提供程序。我认为有重定向login.aspx的默认配置,我该如何改变它? – moon6pence