Tôi đang phát triển một ứng dụng web MVC5. Ứng dụng này có 2 khu vực, 'SU' và '' Ứng dụng '. Mỗi khu vực phải được xác thực độc lập. Mỗi khu vực cũng có các trang đăng nhập riêng của họ.
Tôi đang sử dụng OWIN để xác thực người dùng.
Bây giờ vấn đề là, tôi không thể đặt số tiền CookieAuthenticationOptions
LoginPath
dựa trên khu vực người dùng đang yêu cầu.
Ví dụ, nếu người dùng yêu cầu http://example.com/su/reports/dashboard
, tôi sẽ có thể chuyển hướng họ đến http://example.com/su/auth/login
Tương tự như vậy, đối với khu vực 'App', nếu người dùng yêu cầu http://example.com/app/history/dashboard
, tôi sẽ có thể chuyển hướng họ đến http://example.com/app/auth/login
Xác thực dựa trên khu vực bằng cách sử dụng OWIN
Tôi muốn để tránh Tuỳ chỉnh thuộc tính và do đó cố gắng sau mã nhưng nó luôn luôn chuyển hướng đến con đường đăng nhập root tức, http://example.com/auth/login
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
var url = HttpContext.Current.Request.Url.AbsoluteUri;
string loginPath = "/auth/login";
string areaName = string.Empty;
if (url.ToLower().Contains("/su/"))
{
areaName = "SU";
loginPath = "/su/auth/login";
}
if (url.ToLower().Contains("/app/"))
{
areaName = "APP";
loginPath = "/app/auth/login";
}
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie" + areaName,
LoginPath = new PathString(loginPath)
});
}
}
tôi sau cách tiếp cận đúng hay là có cách nào khác để đạt được giống nhau không? Cảm ơn!