Olá. Estou tentando внедряет аутентичную федерацию. O Arquivo xml foi disponibilizado por um terceiro e funciona numa aplicação MVC criada do zero, mas na minha aplicação que tenho que воплощение, não funciona.
ApiController:
[HttpGet]
public void SignIn()
{
// Send a WSFederation sign-in request.
if (!HttpContext.Current.Request.IsAuthenticated)
{
HttpContext.Current.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, WsFederationAuthenticationDefaults.AuthenticationType);
}
}
public void SignOut()
{
// Send a WSFederation sign-out request.
HttpContext.Current.GetOwinContext().Authentication.SignOut(WsFederationAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
}
1005 Запуск:
public class Startup
{
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string metadata = string.Format(@".........");
public void Configuration(IAppBuilder app)
{
app.Map("/api", ConfigureApi);
ConfigureAuth(app);
}
private void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadata,
Notifications = new WsFederationAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
}
private void ConfigureApi(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter() { CamelCaseText = true });
config.MapHttpAttributeRoutes();
config.Filters.Add(new NmExceptionFilterAttribute());
config.Filters.Add(new ElmahErrorAttribute());
config.BindParameter(typeof(NmUserFile), new UserFileModelBinder());
config.EnableCors();
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly;
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
app.Run(x => { return Task.Delay(0); });
config.EnsureInitialized();
}
}
Порядок входа в систему без перенаправления для входа в систему для обслуживания клиентов? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.