在我的ASP.NET MVC Web应用程序中,我有一个外部的单点登录系统,用于在企业中央对用户进行身份验证。该SSO应该返回一个“数据包”,其中包含唯一标识用户��信息,然后将其传递给本地ASP.NET Owin Cookie认证(或替代Forms认证等)。如果由于某种原因SSO提供的“数据包”不包含最低要求的信息,则我希望在本地ASP.NET级别上适当地处理它。这是一个相当严重的错误,不一定是经常发生的事情。因此,我想这样做:
但我不确定应该返回哪个HTTP状态码。类似这样的状态码是否合适?
根据HTTP状态码列表,500错误中的一个可能是最合适的:
引用: 以数字“5”开头的响应状态代码表示服务器意识到遇到错误或无法执行请求的情况...
public class AuthController() : Controller
{
public ActionResult Login(string returnUrl)
{
// Process external single-sign-on authentication
bool isSuccess = ProcessExternalAuth();
if (!success)
// return appropriate HTTP status code
else
// continue with login
}
}
但我不确定应该返回哪个HTTP状态码。类似这样的状态码是否合适?
return new HttpStatusCodeResult(
HttpStatusCode.BadGateway, "SSO authentication failed.");
根据HTTP状态码列表,500错误中的一个可能是最合适的:
引用: 以数字“5”开头的响应状态代码表示服务器意识到遇到错误或无法执行请求的情况...