Tag: 表单 认证

ServiceStack API和ASP MVC身份validation有两种方式

我在解决通过ServiceStack服务html页面和Web服务的ASP MVC应用程序的体系结构时遇到了麻烦。 该应用程序存在于基本URL中,例如“ http://myapplication.com ”,SS存在于“ http://myapplication.com/api ”中,因为它是配置两者的最简单方法。 一般来说一切正常,但是当我到达授权和身份validation的一部分时,我就被困住了。 首先,我需要应用程序处理cookie,因为ASP通常会执行FormsAuthentication,并且当使用属性“Authorize”时,用户将通过登录屏幕并使用操作和控制器。 这是典型的ASP,所以我没有问题,例如“ http://myapplication.com/PurchaseOrders ”。 另一方面,我的应用程序的客户端将从javascript使用我的Web服务API。 在某些情况下,还会使用ServiceStack的“Authenticate”属性标记这些Web服务。 例如,“ http://myapplication.com/api/purchaseorders/25 ”必须validation用户是否可以查看该特定采购订单,否则发送401 Unauthorized,以便javascript可以处理这些情况并显示错误消息。 最后但并非最不重要的是,另一组用户将使用任何外部应用程序(可能是Java或.NET)通过令牌使用我的API。 因此,我需要解决两种类型的身份validation,一种使用用户名和密码,另一种使用令牌并使其持久化,因此一旦第一次进行身份validation,下一次调用就可以更快地从API中解决。 这是我到目前为止的代码,我已经非常简单地说明了这个例子。 [HttpPost] public ActionResult Logon(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { JsonServiceClient client = new JsonServiceClient(“http://myapplication.com/api/”); var authRequest = new Auth { provider = CredentialsAuthProvider.Name, UserName = model.UserName, Password = model.Password, RememberMe = model.RememberMe […]