【发布时间】:2010-09-30 04:18:06
【问题描述】:
我有一个使用基本表单身份验证的现有 asp.net mvc 网站。该站点有一个登录页面,该页面发回登录操作,该操作通过 FormsAuthentication.SetAuthCookie() 将用户登录。我希望将 api 添加到站点,作为 mvc2 区域,在该区域中,用户将根据作为 http 标头传递的令牌进行身份验证。该区域将仅包含 json 操作,因此将用户重定向到登录页面没有意义。相反,我希望用户只在每个请求中传递一个令牌。该令牌映射到每个用户帐户,并且将自动对用户进行身份验证。
我正在努力将这个逻辑放在哪里。此时,最好的选择似乎是将标头查找逻辑和身份验证添加到 Application_AuthenticateRequest 方法中的 Global.asax。不过,我想避免在调用 FormsAuthentication.SetAuthCookie() 后重定向用户。我希望登录操作对他们透明。
我是不是走错了路?
附带说明:由于该站点有多种用户,因此无法为 api 请求提供用户名/密码。一些人使用 OpenID 加入,而其他人则使用用户名/密码加入。
【问题讨论】:
标签: asp.net asp.net-mvc-2 authentication