我想在.NET MVC 2.0应用程序中允许两种类型的授权。一个是好的旧式ID /密码(表单身份验证),但我也希望能够查看请求页面的标头以获取ID /密码。如果提供了,我想基于此授权,通过表单身份验证并允许用户进入系统。在MVC中这样做的最佳方法是什么?
答案 0 :(得分:0)
不要认为这种类型的身份验证有任何开箱即用的东西。您可以只读取请求标头并检查它们是否包含您需要的登录信息,如果有,只需进行表单身份验证,但使用请求标头中的登录信息,例如
。string userId = String.Empty;
string password = String.Empty;
foreach (var key in Request.Headers.AllKeys)
{
if (key == "UserId")
userId = Request.Headers[key];
if (password == "Password")
password = Request.Headers[password];
}
if (!String.IsNullOrEmpty(userId) && !String.IsNullOrEmpty(password))
// attempt login
else
// display login page
答案 1 :(得分:0)
您可以在global.asax中挂钩身份验证请求,也可以编写自定义HTTPModule。 HTTPModule特别擅长挂钩ASP.NET管道中的所有事件,包括身份验证。
然而,使用它进行基于标题内容的身份验证似乎风险很高,因此知道伪造标题是多么容易。