我有一个遗留应用程序,我们正在转换为使用MVC 5应用程序模板。我们有一个自定义API方法,为了让示例简单,我们只是说它的签名是:
bool Login(username, password);
如何将用户设置为已登录,以便我可以使用[Authorize]属性之类的内容?目前我们希望最简单的方法可以让我们开始开发网站。
我尝试实施this手动设置User.Identity。但是随后每次请求都会重置它。
答案 0 :(得分:0)
最后,我将逻辑提取到Account控制器。这将处理Login并将结果存储在Session中。然后我只需要覆盖System.Web.Mvc.AuthorizeAttribute类和AuthoriseCore方法,如下所示:
using System.Web;
using System.Web.Mvc;
namespace HomeHealth.Web.Infrastructure
{
public class HomeHealthAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return WebSession.SdkContext.IsAuthenticated;
}
}
}
它有一些帮助代码来清理从会话中访问Context,但这是无关紧要的。关键是这是你可能想要的属性/方法。然后,您可以使用以下内容标记控制器/方法:
[HomeHealthAuthorize]
public class PatientController : BaseController
然后为您完成所有检查/重定向。