Я разрабатываю веб-приложение MVC5. Это приложение имеет 2 области: «SU» и «App». Каждая область должна быть аутентифицирована независимо. Каждая область также имеет свои собственные страницы входа.
Я использую OWIN для аутентификации пользователей.
Теперь проблема в том, что я не могу установить owin CookieAuthenticationOptions
LoginPath
в зависимости от области, которую запрашивает пользователь.
Например, если запрос пользователя http://example.com/su/reports/dashboard
, я должен быть в состоянии перенаправить их на http://example.com/su/auth/login
Кроме того, для области «App», если запрос пользователя http://example.com/app/history/dashboard
, я должен быть в состоянии перенаправить их на http://example.com/app/auth/login
Проверка подлинности на основе области с использованием OWIN
Я хотел бы чтобы избежать пользовательского атрибута и, следовательно, попытались следующим кодом, но он всегда перенаправляется на путь корневого входа т.е. 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)
});
}
}
Следую ли я за правильный подход, или есть ли другой способ достичь того же? Благодаря!