我是使用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