与webapi用户进行Mvc asp.net身份验证

时间:2014-07-03 12:03:07

标签: asp.net-mvc-4 asp.net-web-api

我遇到这种情况:

  1. 我在第一台服务器上有一个MVC4 ASP.NET网站。
  2. 有连接到Oracle服务器的WebAPI服务器。
  3. 应用程序的用户存储在Oracle db。
  4. 我应该如何开始自定义Web应用程序? 正如我已经读过的,我想使用" Forms"身份验证模式。

    <authentication mode="Forms">
      <forms loginUrl="~/Home/LogIn" timeout="2880"/>
    </authentication>
    

    我看到有

    FormsAuthentication.SetAuthCookie(person.UserName, false);
    

    登录。有

    FormsAuthentication.Authenticate(...)
    

    验证用户身份的方法。

    我知道,我应该以某种方式覆盖Authenticate(...)方法。在此实现方法中,将要求WebAPIServer \ api用户和密码有效。

    我应该使用CustomUser身份验证吗?或mybe还有其他一些解决方案吗?

1 个答案:

答案 0 :(得分:0)

您有两种选择 -

选项1

您不需要FormsAuthentication.Authenticate(...),因为您将通过Web API验证用户。

但是,您仍然需要使用FormsAuthentication.SetAuthCookie

例如,

// Validate user via Web API
// ...
if (User is authenticated) {
   FormsAuthentication.SetAuthCookie(person.UserName, false);
}

选项2

实施Custom Membership Provider。实施比选项1需要更长的时间,但提供商模型使代码更清晰,并且将来很容易维护。