C# 访问远程用户
我正在试图找到一种方法来获取我的远程用户,这样我就可以使用计算机凭据将我的用户登录到web应用程序Intranet应用程序。我无法确定如何获取此信息,因为当我在MS_HttpContext中查看我的密钥时,它似乎没有设置。这是我尝试过的代码 在我的WebApiConfiguration中,我有以下内容C# 访问远程用户,c#,httprequest,asp.net-web-api2,windows-authentication,C#,Httprequest,Asp.net Web Api2,Windows Authentication,我正在试图找到一种方法来获取我的远程用户,这样我就可以使用计算机凭据将我的用户登录到web应用程序Intranet应用程序。我无法确定如何获取此信息,因为当我在MS_HttpContext中查看我的密钥时,它似乎没有设置。这是我尝试过的代码 在我的WebApiConfiguration中,我有以下内容 public static void Register(HttpConfiguration config) { HttpClientHandler handler = new HttpCli
public static void Register(HttpConfiguration config) {
HttpClientHandler handler = new HttpClientHandler() {
UseDefaultCredentials =true
};
HttpClient client = new HttpClient();
config.MapHttpAttributeRoutes();
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Model.User.User>("User");
config.MapODataServiceRoute("Application", "api", builder.GetEdmModel());
// added so api controllers can return json encoded data.
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}
我环顾四周,试图找到一个解决方案,我所能找到的只是上面提到的解决方案及其变体,所有这些我都尝试过,但都没有成功。如有任何提示或建议,将不胜感激。我唯一的猜测是为什么会出现这种情况是因为使用了IIS Express而不是完整的IIS。您需要使用启用了集成身份验证的IIS才能工作,IIRC。一旦我转移到本机IIS而不是IIS Express,我就能够工作了。非常感谢。
var p = Request.Properties;
var t = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.ServerVariables;
foreach (var s in t) {
Debug.WriteLine("{0} : {1}", s, t.Get(s.ToString()).ToString());
}