Я пытаюсь реализовать это решение, в котором внутренние пользователи организации будут входить в систему через форму входа (но использовать учетные данные Windows), которые отправляют в ADFS и получают претензии. Также разрешите внешних пользователей (которые созданы в бэкэнде и вставлены в базу данных sql server), чья информация содержит те же утверждения, что и из ADFS. Вид систем с несколькими поставщиками входа, как показано ниже, когда я ввожу имя пользователя и пароль слева, он проверяется на SQL Server, но щелчок по окнам перенаправляет на вход в adfs.
Прямо сейчас я получил код, как показано ниже, но по умолчанию он пытается перенаправить на URL-адрес adfs, чем показывает экран входа в систему.
[assembly: OwinStartup(typeof(App_Start.Startup))]
namespace App_Start
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
//interactive logon process
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
//name of the authentication type
AuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
//Login path should be below
LoginPath = new PathString("/Home/Login"),
//TODO: Enable this to always send and receive cookies in SSL when in production
CookieSecure = CookieSecureOption.Always,
//enable sliding expiration
SlidingExpiration = true,
//Cookie expires in 4 hours
ExpireTimeSpan = TimeSpan.FromTicks(DateTime.Now.AddHours(4).Ticks)
});
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
MetadataAddress = ConfigurationManager.AppSettings["federationUri"],
Wtrealm = ConfigurationManager.AppSettings["realm"]
});
//This will set ADFS as the default authentication provider
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
}
}
}