Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ASP.NET Web API Self-Host with Windows Authentication
- using System;
- using System.Web.Http;
- using System.Web.Http.SelfHost;
- namespace SelfHost
- {
- class Program
- {
- static void Main(string[] args)
- {
- var config = new HttpSelfHostConfiguration("http://myComputerName:8080");
- config.UseWindowsAuthentication = true;
- config.Routes.MapHttpRoute(
- "API Default", "api/{controller}/{id}",
- new { id = RouteParameter.Optional });
- using (HttpSelfHostServer server = new HttpSelfHostServer(config))
- {
- server.OpenAsync().Wait();
- Console.WriteLine("Press Enter to quit.");
- Console.ReadLine();
- }
- }
- }
- }
- [Authorize]
- public class HelloController : ApiController
- {
- public string Get()
- {
- // This next line throws an null reference exception if the Authorize
- // attribute is commented out.
- string userName = Request.GetUserPrincipal().Identity.Name;
- return "Hello " + userName;
- }
- }
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <HTML><HEAD>
- <META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
- <BODY></BODY></HTML>
- public class NtlmSelfHostConfiguration : HttpSelfHostConfiguration
- {
- public NtlmSelfHostConfiguration(string baseAddress)
- : base(baseAddress)
- { }
- public NtlmSelfHostConfiguration(Uri baseAddress)
- : base(baseAddress)
- { }
- protected override BindingParameterCollection OnConfigureBinding(HttpBinding httpBinding)
- {
- httpBinding.Security.Mode = HttpBindingSecurityMode.TransportCredentialOnly;
- httpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
- return base.OnConfigureBinding(httpBinding);
- }
- }
- var config = new NtlmSelfHostConfiguration("http://myComputerName:8080");
- using System.Web.Http;
- public class MyAuth : AuthorizeAttribute
- {
- public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
- {
- base.OnAuthorization(actionContext); //put breakpoint here
- }
- }
- [Authorize]
- public class HelloController : ApiController
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement